[gnome-panel] panel: Move popup-discovery code to panel-util.c
- From: Vincent Untz <vuntz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] panel: Move popup-discovery code to panel-util.c
- Date: Tue, 22 Feb 2011 22:20:37 +0000 (UTC)
commit 3d3a06399a8290a351cce5230eee626acaab89d3
Author: Vincent Untz <vuntz gnome org>
Date: Tue Feb 22 19:51:53 2011 +0100
panel: Move popup-discovery code to panel-util.c
gnome-panel/applet.c | 27 +--------------------
gnome-panel/gnome-desktop-item-edit.c | 2 +
gnome-panel/panel-util.c | 42 +++++++++++++++++++++++++++++++++
gnome-panel/panel-util.h | 4 +++
4 files changed, 49 insertions(+), 26 deletions(-)
---
diff --git a/gnome-panel/applet.c b/gnome-panel/applet.c
index 80d4dba..23e0d33 100644
--- a/gnome-panel/applet.c
+++ b/gnome-panel/applet.c
@@ -799,8 +799,6 @@ applet_key_press (GtkWidget *widget,
AppletInfo *info)
{
GdkEventButton eventbutton;
- GtkBindingSet *binding_set;
- GtkBindingEntry *binding_entry;
gboolean is_popup = FALSE;
gboolean is_edit_popup = FALSE;
@@ -816,30 +814,7 @@ applet_key_press (GtkWidget *widget,
* - keybinding of popup-menu + modifier from metacity => we open menu
* to "edit"
*/
- binding_set = gtk_binding_set_by_class (g_type_class_peek (GTK_TYPE_WIDGET));
-
- for (binding_entry = binding_set->entries;
- binding_entry != NULL;
- binding_entry = binding_entry->set_next) {
- GtkBindingSignal *binding_signal;
-
- for (binding_signal = binding_entry->signals;
- binding_signal != NULL;
- binding_signal = binding_signal->next) {
- if (g_strcmp0 (binding_signal->signal_name, "popup-menu") == 0 ||
- g_strcmp0 (binding_signal->signal_name, "popup_menu") == 0) {
- if (binding_entry->keyval != event->keyval)
- break;
-
- is_popup = (event->state & GDK_MODIFIER_MASK) == binding_entry->modifiers;
- is_edit_popup = (event->state & GDK_MODIFIER_MASK) == (panel_bindings_get_mouse_button_modifier_keymask ()|binding_entry->modifiers);
- break;
- }
- }
-
- if (is_popup || is_edit_popup)
- break;
- }
+ panel_util_key_event_is_popup (event, &is_popup, &is_edit_popup);
if (is_edit_popup)
applet_show_menu (info, panel_applet_get_edit_menu (info), FALSE, &eventbutton);
diff --git a/gnome-panel/gnome-desktop-item-edit.c b/gnome-panel/gnome-desktop-item-edit.c
index e08a10c..f37f87d 100644
--- a/gnome-panel/gnome-desktop-item-edit.c
+++ b/gnome-panel/gnome-desktop-item-edit.c
@@ -20,6 +20,8 @@ GConfClient *panel_gconf_get_client (void) { return NULL; }
gboolean panel_global_config_get_tooltips_enabled (void) { return FALSE; }
#include "panel-lockdown.h"
gboolean panel_lockdown_get_disable_lock_screen (void) { return FALSE; }
+#include "panel-bindings.h"
+guint panel_bindings_get_mouse_button_modifier_keymask (void) { return 0; }
static int dialogs = 0;
static gboolean create_new = FALSE;
diff --git a/gnome-panel/panel-util.c b/gnome-panel/panel-util.c
index 7de4e1e..f768c81 100644
--- a/gnome-panel/panel-util.c
+++ b/gnome-panel/panel-util.c
@@ -36,6 +36,7 @@
#include "applet.h"
#include "xstuff.h"
+#include "panel-bindings.h"
#include "panel-config-global.h"
#include "panel-gconf.h"
#include "panel-globals.h"
@@ -1223,3 +1224,44 @@ panel_util_get_file_optional_homedir (const char *location)
return file;
}
+
+void
+panel_util_key_event_is_popup (GdkEventKey *event,
+ gboolean *is_popup,
+ gboolean *is_popup_modifier)
+{
+ GtkBindingSet *binding_set;
+ GtkBindingEntry *binding_entry;
+ gboolean popup = FALSE;
+ gboolean popup_modifier = FALSE;
+
+ binding_set = gtk_binding_set_by_class (g_type_class_peek (GTK_TYPE_WIDGET));
+
+ for (binding_entry = binding_set->entries;
+ binding_entry != NULL;
+ binding_entry = binding_entry->set_next) {
+ GtkBindingSignal *binding_signal;
+
+ for (binding_signal = binding_entry->signals;
+ binding_signal != NULL;
+ binding_signal = binding_signal->next) {
+ if (g_strcmp0 (binding_signal->signal_name, "popup-menu") == 0 ||
+ g_strcmp0 (binding_signal->signal_name, "popup_menu") == 0) {
+ if (binding_entry->keyval != event->keyval)
+ break;
+
+ popup = (event->state & GDK_MODIFIER_MASK) == binding_entry->modifiers;
+ popup_modifier = (event->state & GDK_MODIFIER_MASK) == (panel_bindings_get_mouse_button_modifier_keymask ()|binding_entry->modifiers);
+ break;
+ }
+ }
+
+ if (popup || popup_modifier)
+ break;
+ }
+
+ if (is_popup)
+ *is_popup = popup;
+ if (is_popup_modifier)
+ *is_popup_modifier = popup_modifier;
+}
diff --git a/gnome-panel/panel-util.h b/gnome-panel/panel-util.h
index 8551d95..6d5baa8 100644
--- a/gnome-panel/panel-util.h
+++ b/gnome-panel/panel-util.h
@@ -63,6 +63,10 @@ void panel_util_set_tooltip_text (GtkWidget *widget,
GFile *panel_util_get_file_optional_homedir (const char *location);
+void panel_util_key_event_is_popup (GdkEventKey *event,
+ gboolean *is_popup,
+ gboolean *is_popup_modifier);
+
G_END_DECLS
#endif /* PANEL_UTIL_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]