aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Screen.hh4
-rw-r--r--src/ScreenResource.cc2
-rw-r--r--src/ScreenResource.hh4
-rw-r--r--src/Window.cc8
4 files changed, 13 insertions, 5 deletions
diff --git a/src/Screen.hh b/src/Screen.hh
index 83c5cb5..1e03b78 100644
--- a/src/Screen.hh
+++ b/src/Screen.hh
@@ -95,7 +95,9 @@ public:
95 bool isRootColormapInstalled() const { return root_colormap_installed; } 95 bool isRootColormapInstalled() const { return root_colormap_installed; }
96 bool isScreenManaged() const { return m_state.managed; } 96 bool isScreenManaged() const { return m_state.managed; }
97 bool isWorkspaceWarping() const { return (m_workspaces_list.size() > 1) && *resource.workspace_warping; } 97 bool isWorkspaceWarping() const { return (m_workspaces_list.size() > 1) && *resource.workspace_warping; }
98 bool isWorkspaceWarpingVertical() const { return *resource.workspace_warping_vertical; } 98 bool isWorkspaceWarpingHorizontal() const { return isWorkspaceWarping() && *resource.workspace_warping_horizontal; }
99 bool isWorkspaceWarpingVertical() const { return isWorkspaceWarping() && *resource.workspace_warping_vertical; }
100 int getWorkspaceWarpingHorizontalOffset() const { return *resource.workspace_warping_horizontal_offset; }
99 int getWorkspaceWarpingVerticalOffset() const { return *resource.workspace_warping_vertical_offset; } 101 int getWorkspaceWarpingVerticalOffset() const { return *resource.workspace_warping_vertical_offset; }
100 bool doAutoRaise() const { return *resource.auto_raise; } 102 bool doAutoRaise() const { return *resource.auto_raise; }
101 bool clickRaises() const { return *resource.click_raises; } 103 bool clickRaises() const { return *resource.click_raises; }
diff --git a/src/ScreenResource.cc b/src/ScreenResource.cc
index c5e0027..08a2df1 100644
--- a/src/ScreenResource.cc
+++ b/src/ScreenResource.cc
@@ -89,7 +89,9 @@ ScreenResource::ScreenResource(FbTk::ResourceManager& rm,
89 max_disable_move(rm, false, scrname+".maxDisableMove", altscrname+".MaxDisableMove"), 89 max_disable_move(rm, false, scrname+".maxDisableMove", altscrname+".MaxDisableMove"),
90 max_disable_resize(rm, false, scrname+".maxDisableResize", altscrname+".MaxDisableResize"), 90 max_disable_resize(rm, false, scrname+".maxDisableResize", altscrname+".MaxDisableResize"),
91 workspace_warping(rm, true, scrname+".workspacewarping", altscrname+".WorkspaceWarping"), 91 workspace_warping(rm, true, scrname+".workspacewarping", altscrname+".WorkspaceWarping"),
92 workspace_warping_horizontal(rm, true, scrname+".workspacewarpinghorizontal", altscrname+".WorkspaceWarpingHorizontal"),
92 workspace_warping_vertical(rm, true, scrname+".workspacewarpingvertical", altscrname+".WorkspaceWarpingVertical"), 93 workspace_warping_vertical(rm, true, scrname+".workspacewarpingvertical", altscrname+".WorkspaceWarpingVertical"),
94 workspace_warping_horizontal_offset(rm, 1, scrname+".workspacewarpinghorizontaloffset", altscrname+".WorkspaceWarpingHorizontalOffset"),
93 workspace_warping_vertical_offset(rm, 1, scrname+".workspacewarpingverticaloffset", altscrname+".WorkspaceWarpingVerticalOffset"), 95 workspace_warping_vertical_offset(rm, 1, scrname+".workspacewarpingverticaloffset", altscrname+".WorkspaceWarpingVerticalOffset"),
94 show_window_pos(rm, false, scrname+".showwindowposition", altscrname+".ShowWindowPosition"), 96 show_window_pos(rm, false, scrname+".showwindowposition", altscrname+".ShowWindowPosition"),
95 auto_raise(rm, true, scrname+".autoRaise", altscrname+".AutoRaise"), 97 auto_raise(rm, true, scrname+".autoRaise", altscrname+".AutoRaise"),
diff --git a/src/ScreenResource.hh b/src/ScreenResource.hh
index 120ecf9..5aac6dd 100644
--- a/src/ScreenResource.hh
+++ b/src/ScreenResource.hh
@@ -38,6 +38,7 @@ struct ScreenResource {
38 max_disable_move, 38 max_disable_move,
39 max_disable_resize, 39 max_disable_resize,
40 workspace_warping, 40 workspace_warping,
41 workspace_warping_horizontal,
41 workspace_warping_vertical, 42 workspace_warping_vertical,
42 show_window_pos, 43 show_window_pos,
43 auto_raise, 44 auto_raise,
@@ -56,7 +57,8 @@ struct ScreenResource {
56 menu_delay, 57 menu_delay,
57 tab_width, 58 tab_width,
58 tooltip_delay, 59 tooltip_delay,
59 workspace_warping_vertical_offset; 60 workspace_warping_horizontal_offset,
61 workspace_warping_vertical_offset;
60 FbTk::Resource<bool> allow_remote_actions; 62 FbTk::Resource<bool> allow_remote_actions;
61 FbTk::Resource<bool> clientmenu_use_pixmap; 63 FbTk::Resource<bool> clientmenu_use_pixmap;
62 FbTk::Resource<bool> tabs_use_pixmap; 64 FbTk::Resource<bool> tabs_use_pixmap;
diff --git a/src/Window.cc b/src/Window.cc
index 1f2d184..d761016 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -2578,6 +2578,7 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) {
2578 const int warp_pad = screen().getEdgeSnapThreshold(); 2578 const int warp_pad = screen().getEdgeSnapThreshold();
2579 const int workspaces = screen().numberOfWorkspaces(); 2579 const int workspaces = screen().numberOfWorkspaces();
2580 const bool is_warping = screen().isWorkspaceWarping(); 2580 const bool is_warping = screen().isWorkspaceWarping();
2581 const bool is_warping_horzntal = screen().isWorkspaceWarpingHorizontal();
2581 const bool is_warping_vertical = screen().isWorkspaceWarpingVertical(); 2582 const bool is_warping_vertical = screen().isWorkspaceWarpingVertical();
2582 2583
2583 if ((moved_x || moved_y) && is_warping) { 2584 if ((moved_x || moved_y) && is_warping) {
@@ -2590,12 +2591,13 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) {
2590 int bt_top = int(screen().height()) - warp_pad - 1; 2591 int bt_top = int(screen().height()) - warp_pad - 1;
2591 int bt_bottom = warp_pad; 2592 int bt_bottom = warp_pad;
2592 2593
2593 if (moved_x) { 2594 if (moved_x && is_warping_horzntal) {
2595 const int warp_offset = screen().getWorkspaceWarpingHorizontalOffset();
2594 if (me.x_root >= bt_right && moved_x > 0) { //warp right 2596 if (me.x_root >= bt_right && moved_x > 0) { //warp right
2595 new_id = (cur_id + 1) % workspaces; 2597 new_id = (cur_id + warp_offset) % workspaces;
2596 m_last_resize_x = 0; 2598 m_last_resize_x = 0;
2597 } else if (me.x_root <= bt_left && moved_x < 0) { //warp left 2599 } else if (me.x_root <= bt_left && moved_x < 0) { //warp left
2598 new_id = (cur_id + -1) % workspaces; 2600 new_id = (cur_id + workspaces - warp_offset) % workspaces;
2599 m_last_resize_x = screen().width() - 1; 2601 m_last_resize_x = screen().width() - 1;
2600 } 2602 }
2601 } 2603 }