diff options
author | Mark Tiefenbruck <mark@fluxbox.org> | 2008-10-15 02:40:33 (GMT) |
---|---|---|
committer | Mark Tiefenbruck <mark@fluxbox.org> | 2008-10-15 02:40:33 (GMT) |
commit | 9bd64010135e26f97fa4d4d551737847fedfbcdd (patch) | |
tree | de54d9641c4923b153d3d79ccc25ac414e22574b /src | |
parent | 7380a1f8f2292f0cbc00bdb8d2e7fc0ded84f816 (diff) | |
download | fluxbox-9bd64010135e26f97fa4d4d551737847fedfbcdd.zip fluxbox-9bd64010135e26f97fa4d4d551737847fedfbcdd.tar.bz2 |
ignore XRandr events that don't actually change the screen size
Diffstat (limited to 'src')
-rw-r--r-- | src/FbRootWindow.cc | 4 | ||||
-rw-r--r-- | src/FbRootWindow.hh | 1 | ||||
-rw-r--r-- | src/FbTk/FbWindow.cc | 13 | ||||
-rw-r--r-- | src/FbTk/FbWindow.hh | 6 | ||||
-rw-r--r-- | src/Screen.cc | 20 |
5 files changed, 22 insertions, 22 deletions
diff --git a/src/FbRootWindow.cc b/src/FbRootWindow.cc index a3e4bc3..7e2b77e 100644 --- a/src/FbRootWindow.cc +++ b/src/FbRootWindow.cc | |||
@@ -60,7 +60,3 @@ FbRootWindow::FbRootWindow(int screen_num): | |||
60 | m_colormap = DefaultColormap(disp, screen_num); | 60 | m_colormap = DefaultColormap(disp, screen_num); |
61 | } | 61 | } |
62 | } | 62 | } |
63 | |||
64 | void FbRootWindow::updateGeometry() { | ||
65 | FbTk::FbWindow::updateGeometry(); | ||
66 | } | ||
diff --git a/src/FbRootWindow.hh b/src/FbRootWindow.hh index 325bab3..34b8219 100644 --- a/src/FbRootWindow.hh +++ b/src/FbRootWindow.hh | |||
@@ -35,7 +35,6 @@ public: | |||
35 | void hide() { } | 35 | void hide() { } |
36 | // we should not assign a new window to this | 36 | // we should not assign a new window to this |
37 | FbTk::FbWindow &operator = (Window win) { return *this; } | 37 | FbTk::FbWindow &operator = (Window win) { return *this; } |
38 | void updateGeometry(); | ||
39 | Visual *visual() const { return m_visual; } | 38 | Visual *visual() const { return m_visual; } |
40 | Colormap colormap() const { return m_colormap; } | 39 | Colormap colormap() const { return m_colormap; } |
41 | 40 | ||
diff --git a/src/FbTk/FbWindow.cc b/src/FbTk/FbWindow.cc index 56f354b..2ef24fa 100644 --- a/src/FbTk/FbWindow.cc +++ b/src/FbTk/FbWindow.cc | |||
@@ -583,16 +583,21 @@ void FbWindow::setOpaque(unsigned char alpha) { | |||
583 | #endif // HAVE_XRENDER | 583 | #endif // HAVE_XRENDER |
584 | } | 584 | } |
585 | 585 | ||
586 | void FbWindow::updateGeometry() { | 586 | bool FbWindow::updateGeometry() { |
587 | if (m_window == 0) | 587 | if (m_window == 0) |
588 | return; | 588 | return false; |
589 | |||
590 | int old_x = m_x, old_y = m_y; | ||
591 | unsigned int old_width = m_width, old_height = m_height; | ||
589 | 592 | ||
590 | Window root; | 593 | Window root; |
591 | unsigned int border_width, depth; | 594 | unsigned int border_width, depth; |
592 | if (XGetGeometry(display(), m_window, &root, &m_x, &m_y, | 595 | if (XGetGeometry(display(), m_window, &root, &m_x, &m_y, |
593 | (unsigned int *)&m_width, (unsigned int *)&m_height, | 596 | &m_width, &m_height, &border_width, &depth)) |
594 | &border_width, &depth)) | ||
595 | m_depth = depth; | 597 | m_depth = depth; |
598 | |||
599 | return (old_x != m_x || old_y != m_y || old_width != m_width || | ||
600 | old_height != m_height); | ||
596 | } | 601 | } |
597 | 602 | ||
598 | void FbWindow::create(Window parent, int x, int y, | 603 | void FbWindow::create(Window parent, int x, int y, |
diff --git a/src/FbTk/FbWindow.hh b/src/FbTk/FbWindow.hh index a80a5b0..edeffe1 100644 --- a/src/FbTk/FbWindow.hh +++ b/src/FbTk/FbWindow.hh | |||
@@ -199,13 +199,13 @@ public: | |||
199 | 199 | ||
200 | static void updatedAlphaBackground(int screen); | 200 | static void updatedAlphaBackground(int screen); |
201 | 201 | ||
202 | /// updates x,y, width, height and screen num from X window | ||
203 | bool updateGeometry(); | ||
204 | |||
202 | protected: | 205 | protected: |
203 | /// creates a window with x window client (m_window = client) | 206 | /// creates a window with x window client (m_window = client) |
204 | explicit FbWindow(Window client); | 207 | explicit FbWindow(Window client); |
205 | 208 | ||
206 | /// updates x,y, width, height and screen num from X window | ||
207 | void updateGeometry(); | ||
208 | |||
209 | private: | 209 | private: |
210 | /// sets new X window and destroys old | 210 | /// sets new X window and destroys old |
211 | void setNew(Window win); | 211 | void setNew(Window win); |
diff --git a/src/Screen.cc b/src/Screen.cc index 776dd29..8b605e7 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -1868,18 +1868,18 @@ void BScreen::updateSize() { | |||
1868 | // update xinerama layout | 1868 | // update xinerama layout |
1869 | initXinerama(); | 1869 | initXinerama(); |
1870 | 1870 | ||
1871 | // force update geometry | 1871 | // check if window geometry has changed |
1872 | rootWindow().updateGeometry(); | 1872 | if (rootWindow().updateGeometry()) { |
1873 | // reset background | ||
1874 | m_root_theme->reset(); | ||
1873 | 1875 | ||
1874 | // reset background | 1876 | // send resize notify |
1875 | m_root_theme->reset(); | 1877 | m_resize_sig.emit(*this); |
1876 | 1878 | m_workspace_area_sig.emit(*this); | |
1877 | // send resize notify | ||
1878 | m_resize_sig.emit(*this); | ||
1879 | m_workspace_area_sig.emit(*this); | ||
1880 | 1879 | ||
1881 | // move windows out of inactive heads | 1880 | // move windows out of inactive heads |
1882 | clearHeads(); | 1881 | clearHeads(); |
1882 | } | ||
1883 | } | 1883 | } |
1884 | 1884 | ||
1885 | 1885 | ||