diff options
Diffstat (limited to 'endless/eostopbar.c')
-rw-r--r-- | endless/eostopbar.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/endless/eostopbar.c b/endless/eostopbar.c index 94cdb8e..4d6f42a 100644 --- a/endless/eostopbar.c +++ b/endless/eostopbar.c @@ -55,6 +55,32 @@ enum { static guint top_bar_signals[LAST_SIGNAL] = { 0 }; +static gboolean +eos_top_bar_button_press_event (GtkWidget *widget, + GdkEventButton *event) +{ + GtkWidget *window; + + /* ignore right clicks */ + if (gdk_event_triggers_context_menu ((GdkEvent *) event)) + return FALSE; + + /* ignore double clicks, etc */ + if (event->type != GDK_BUTTON_PRESS) + return FALSE; + + window = gtk_widget_get_toplevel (widget); + if (!window) + return FALSE; + + gtk_window_begin_move_drag (GTK_WINDOW (window), + event->button, + event->x_root, + event->y_root, + event->time); + return TRUE; +} + static void eos_top_bar_get_preferred_height (GtkWidget *widget, int *minimum, @@ -98,6 +124,7 @@ eos_top_bar_class_init (EosTopBarClass *klass) g_type_class_add_private (klass, sizeof (EosTopBarPrivate)); + widget_class->button_press_event = eos_top_bar_button_press_event; widget_class->get_preferred_height = eos_top_bar_get_preferred_height; widget_class->draw = eos_top_bar_draw; |