diff options
author | Danny Baumann <dannybaumann@web.de> | 2008-11-08 13:53:05 +0100 |
---|---|---|
committer | Danny Baumann <dannybaumann@web.de> | 2008-11-08 13:53:05 +0100 |
commit | fcb7a09679c0a3d427e448c26828bc5e9b9ddf55 (patch) | |
tree | 48553ba65f6a8fdfab223105a15efc49124dc569 /gtk | |
parent | f94f072c0b17f5b9e7a10bb6ff511fa67f07cfc6 (diff) |
Update Gnome WM applet for gtk-window-decorator changes.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gnome/compiz-window-manager.c | 74 |
1 files changed, 58 insertions, 16 deletions
diff --git a/gtk/gnome/compiz-window-manager.c b/gtk/gnome/compiz-window-manager.c index c8011fb7..9eaf6d0f 100644 --- a/gtk/gnome/compiz-window-manager.c +++ b/gtk/gnome/compiz-window-manager.c @@ -58,8 +58,30 @@ GCONF_DIR "/theme" enum { + DOUBLE_CLICK_NONE, DOUBLE_CLICK_SHADE, - DOUBLE_CLICK_MAXIMIZE + DOUBLE_CLICK_MAXIMIZE, + DOUBLE_CLICK_MAXIMIZE_HORIZONTALLY, + DOUBLE_CLICK_MAXIMIZE_VERTICALLY, + DOUBLE_CLICK_MINIMIZE, + DOUBLE_CLICK_RAISE, + DOUBLE_CLICK_LOWER, + DOUBLE_CLICK_MENU +}; + +static const struct { + unsigned int action; + const char *value; +} double_click_actions [] = { + { DOUBLE_CLICK_NONE, "none" }, + { DOUBLE_CLICK_SHADE, "toggle_shade" }, + { DOUBLE_CLICK_MAXIMIZE, "toggle_maximize" }, + { DOUBLE_CLICK_MAXIMIZE_HORIZONTALLY, "toggle_maximize_horizontally" }, + { DOUBLE_CLICK_MAXIMIZE_VERTICALLY, "toggle_maximize_vertically" }, + { DOUBLE_CLICK_MINIMIZE, "minimize" }, + { DOUBLE_CLICK_RAISE, "raise" }, + { DOUBLE_CLICK_LOWER, "lower" }, + { DOUBLE_CLICK_MENU, "menu" } }; static GnomeWindowManagerClass *parent_class; @@ -149,15 +171,18 @@ compiz_change_settings (GnomeWindowManager *wm, if (settings->flags & GNOME_WM_SETTING_DOUBLE_CLICK_ACTION) { - const char *action = NULL; - - switch (settings->double_click_action) { - case DOUBLE_CLICK_SHADE: - action = "toggle_shade"; - break; - case DOUBLE_CLICK_MAXIMIZE: - action = "toggle_maximize"; - break; + const char *action = NULL; + unsigned int i, size; + + size = sizeof (double_click_actions) / sizeof (double_click_actions[0]); + for (i = 0; i < size; i++) + { + if (settings->double_click_action == + double_click_actions[i].action) + { + action = double_click_actions[i].value; + break; + } } if (action) @@ -295,10 +320,20 @@ compiz_get_settings (GnomeWindowManager *wm, if (str) { - if (strcmp (str, "toggle_shade") == 0) - settings->double_click_action = DOUBLE_CLICK_SHADE; - else if (strcmp (str, "toggle_maximize") == 0) - settings->double_click_action = DOUBLE_CLICK_MAXIMIZE; + unsigned int i, size; + + size = sizeof (double_click_actions) / + sizeof (double_click_actions[0]); + + for (i = 0; i < size; i++) + { + if (strcmp (str, double_click_actions[i].value) == 0) + { + settings->double_click_action = + double_click_actions[i].action; + break; + } + } } settings->flags |= GNOME_WM_SETTING_DOUBLE_CLICK_ACTION; @@ -390,8 +425,15 @@ compiz_get_double_click_actions (GnomeWindowManager *wm, int *n_actions_p) { static GnomeWMDoubleClickAction actions[] = { - { DOUBLE_CLICK_SHADE, "Shade" }, - { DOUBLE_CLICK_MAXIMIZE, "Maximize" } + { DOUBLE_CLICK_NONE, "None" }, + { DOUBLE_CLICK_SHADE, "Shade" }, + { DOUBLE_CLICK_MAXIMIZE, "Maximize" }, + { DOUBLE_CLICK_MAXIMIZE_HORIZONTALLY, "Maximize Horizontally" }, + { DOUBLE_CLICK_MAXIMIZE_HORIZONTALLY, "Maximize Vertically" }, + { DOUBLE_CLICK_MINIMIZE, "Minimize" }, + { DOUBLE_CLICK_RAISE, "Raise" }, + { DOUBLE_CLICK_LOWER, "Lower" }, + { DOUBLE_CLICK_MENU, "Window Menu" } }; *actions_p = actions; |