diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-09-26 07:59:06 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-09-26 07:59:06 +0000 |
| commit | b192784070b3ec03038e33f2080a39e497e5dd80 (patch) | |
| tree | 41f125df3d44a02c86200c0a4b627cfdf67769bf /openbox/dock.c | |
| parent | 11615ac2c4576d6c3e0db20e8b62375184d374db (diff) | |
add <dock><moveButton> which can change which button combo is used to move dock apps around in the dock. The new default is A-Left instead of Middle, since soem dock apps use middle, assuming they can!
Diffstat (limited to 'openbox/dock.c')
| -rw-r--r-- | openbox/dock.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/openbox/dock.c b/openbox/dock.c index 63a7f977..b7708900 100644 --- a/openbox/dock.c +++ b/openbox/dock.c @@ -34,11 +34,27 @@ static ObDock *dock; StrutPartial dock_strut; +static void dock_app_grab_button(ObDockApp *app, gboolean grab) +{ + if (grab) { + grab_button_full(config_dock_app_move_button, + config_dock_app_move_modifiers, app->icon_win, + ButtonPressMask | ButtonReleaseMask | + ButtonMotionMask, + GrabModeAsync, OB_CURSOR_MOVE); + } else { + ungrab_button(config_dock_app_move_button, + config_dock_app_move_modifiers, app->icon_win); + } +} + void dock_startup(gboolean reconfig) { XSetWindowAttributes attrib; if (reconfig) { + GList *it; + XSetWindowBorder(ob_display, dock->frame, RrColorPixel(ob_rr_theme->b_color)); XSetWindowBorderWidth(ob_display, dock->frame, ob_rr_theme->bwidth); @@ -50,6 +66,9 @@ void dock_startup(gboolean reconfig) dock_configure(); dock_hide(TRUE); + + for (it = dock->dock_apps; it; it = g_list_next(it)) + dock_app_grab_button(it->data, TRUE); return; } @@ -81,7 +100,12 @@ void dock_startup(gboolean reconfig) void dock_shutdown(gboolean reconfig) { if (reconfig) { + GList *it; + stacking_remove(DOCK_AS_WINDOW(dock)); + + for (it = dock->dock_apps; it; it = g_list_next(it)) + dock_app_grab_button(it->data, FALSE); return; } @@ -149,9 +173,7 @@ void dock_add(Window win, XWMHints *wmhints) XChangeSaveSet(ob_display, app->icon_win, SetModeInsert); XSelectInput(ob_display, app->icon_win, DOCKAPP_EVENT_MASK); - grab_button_full(2, 0, app->icon_win, - ButtonPressMask | ButtonReleaseMask | ButtonMotionMask, - GrabModeAsync, OB_CURSOR_MOVE); + dock_app_grab_button(app, TRUE); g_hash_table_insert(window_map, &app->icon_win, app); @@ -166,7 +188,7 @@ void dock_remove_all() void dock_remove(ObDockApp *app, gboolean reparent) { - ungrab_button(2, 0, app->icon_win); + dock_app_grab_button(app, FALSE); XSelectInput(ob_display, app->icon_win, NoEventMask); /* remove the window from our save set */ XChangeSaveSet(ob_display, app->icon_win, SetModeDelete); |
