[gtk+/client-side-decorations] double-click toggles maximize window
- From: Cody Russell <bratsche src gnome org>
- To: svn-commits-list gnome org
- Subject: [gtk+/client-side-decorations] double-click toggles maximize window
- Date: Wed, 15 Jul 2009 00:00:23 +0000 (UTC)
commit c2bf817e139384c0f45e7b064b33762dad98b386
Author: Cody Russell <bratsche gnome org>
Date: Tue Jul 14 19:00:13 2009 -0500
double-click toggles maximize window
gtk/gtkwindow.c | 60 ++++++++++++++++++++++++++++++++----------------------
1 files changed, 35 insertions(+), 25 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index e8dba25..24c4309 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -5990,38 +5990,48 @@ static gboolean
gtk_window_button_press_event (GtkWidget *widget,
GdkEventButton *event)
{
+ GtkWindow *window = GTK_WINDOW (widget);
gint x = event->x;
gint y = event->y;
- if (event->type != GDK_BUTTON_PRESS)
- return FALSE;
-
- if (is_client_side_decorated (GTK_WINDOW (widget)))
+ if (is_client_side_decorated (window))
{
- GtkWindowRegion region = get_active_region_type (GTK_WINDOW (widget), x, y);
+ GtkWindowPrivate *priv = GTK_WINDOW_GET_PRIVATE (window);
+ GtkWindowRegion region = get_active_region_type (window, x, y);
- switch (region)
+ if (event->type == GDK_BUTTON_PRESS)
{
- case GTK_WINDOW_REGION_TITLE:
- case GTK_WINDOW_REGION_INNER:
- case GTK_WINDOW_REGION_EDGE:
- gtk_window_begin_move_drag (GTK_WINDOW (widget),
- event->button,
- event->x_root,
- event->y_root,
- event->time);
- break;
- default:
- gtk_window_begin_resize_drag (GTK_WINDOW (widget),
- (GdkWindowEdge)region,
- event->button,
- event->x_root,
- event->y_root,
- event->time);
- break;
- }
+ switch (region)
+ {
+ case GTK_WINDOW_REGION_TITLE:
+ case GTK_WINDOW_REGION_INNER:
+ case GTK_WINDOW_REGION_EDGE:
+ gtk_window_begin_move_drag (window,
+ event->button,
+ event->x_root,
+ event->y_root,
+ event->time);
+ break;
+
+ default:
+ gtk_window_begin_resize_drag (window,
+ (GdkWindowEdge)region,
+ event->button,
+ event->x_root,
+ event->y_root,
+ event->time);
+ break;
+ }
- return TRUE;
+ return TRUE;
+ }
+ else if (event->type == GDK_2BUTTON_PRESS)
+ {
+ if (region == GTK_WINDOW_REGION_TITLE)
+ {
+ gtk_button_clicked (GTK_BUTTON (priv->max_button));
+ }
+ }
}
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]