summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2008-11-08 13:53:05 +0100
committerDanny Baumann <dannybaumann@web.de>2008-11-08 13:53:05 +0100
commitfcb7a09679c0a3d427e448c26828bc5e9b9ddf55 (patch)
tree48553ba65f6a8fdfab223105a15efc49124dc569 /gtk
parentf94f072c0b17f5b9e7a10bb6ff511fa67f07cfc6 (diff)
Update Gnome WM applet for gtk-window-decorator changes.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gnome/compiz-window-manager.c74
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;