diff options
author | pekdon <pekdon> | 2002-03-23 02:02:01 (GMT) |
---|---|---|
committer | pekdon <pekdon> | 2002-03-23 02:02:01 (GMT) |
commit | e133cf83a332a72ca42be5e223834d4e6aa0a2e8 (patch) | |
tree | 72585011623d644257f362dbece3ab3a0b9a4119 | |
parent | 1022df421227aea29259204ce69b93df16c0f7db (diff) | |
download | fluxbox_paul-e133cf83a332a72ca42be5e223834d4e6aa0a2e8.zip fluxbox_paul-e133cf83a332a72ca42be5e223834d4e6aa0a2e8.tar.bz2 |
Xinerama
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | configure.in | 17 | ||||
-rw-r--r-- | src/BaseDisplay.cc | 19 | ||||
-rw-r--r-- | src/BaseDisplay.hh | 6 | ||||
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | util/Makefile.am | 2 |
6 files changed, 40 insertions, 14 deletions
@@ -22,6 +22,14 @@ changes for 0.1.8: | |||
22 | 5 = Skip: lower tabs/shaded windows | 22 | 5 = Skip: lower tabs/shaded windows |
23 | 6 = Skip: stuck windows/shaded windows | 23 | 6 = Skip: stuck windows/shaded windows |
24 | 7 = Skip: lower tabs/stuck windows/shaded windows | 24 | 7 = Skip: lower tabs/stuck windows/shaded windows |
25 | *02/03/15: | ||
26 | * Xinerama support, maximizes windows to the current heads size, places | ||
27 | windows on the current head, makes it possible to place toolbar on | ||
28 | the different heads, also possible with the slit. Menus will be placed | ||
29 | on the current head too. (Claes Nästen) | ||
30 | *02/03/13: | ||
31 | * Fixed window placement, now tabs are taking in account. Also, | ||
32 | no spaced are put inbetween windows to save space. (Claes Nästen) | ||
25 | *02/03/11: | 33 | *02/03/11: |
26 | * Fixed some KDE stuff in Slit.cc (Thanks Tommi Komulainen) | 34 | * Fixed some KDE stuff in Slit.cc (Thanks Tommi Komulainen) |
27 | *02/03/08: | 35 | *02/03/08: |
diff --git a/configure.in b/configure.in index d710bc7..bee2bd0 100644 --- a/configure.in +++ b/configure.in | |||
@@ -241,6 +241,23 @@ AC_ARG_ENABLE( | |||
241 | ) | 241 | ) |
242 | AC_SUBST(GNOME) | 242 | AC_SUBST(GNOME) |
243 | 243 | ||
244 | dnl Check for Xinerama support | ||
245 | XINERAMA="" | ||
246 | AC_MSG_CHECKING([whether to build support for the Xinerama extension]) | ||
247 | AC_ARG_ENABLE(xinerama, | ||
248 | [ --enable-xinerama enable xinerama extension [default=no]], , [enable_xinerama=no]) | ||
249 | |||
250 | if test "x$enable_xinerama" = "xyes"; then | ||
251 | AC_MSG_RESULT([yes]) | ||
252 | AC_CHECK_LIB(Xinerama, XineramaQueryScreens, | ||
253 | XINERAMA="-DXINERAMA"; Xinerama_libs="-lXinerama", ) | ||
254 | else | ||
255 | AC_MSG_RESULT([no]) | ||
256 | fi | ||
257 | AC_SUBST(XINERAMA) | ||
258 | |||
259 | LIBS="$LIBS $Xinerama_libs" | ||
260 | |||
244 | dnl Determine the return type of signal handlers | 261 | dnl Determine the return type of signal handlers |
245 | AC_TYPE_SIGNAL | 262 | AC_TYPE_SIGNAL |
246 | 263 | ||
diff --git a/src/BaseDisplay.cc b/src/BaseDisplay.cc index cb3ca28..d92c533 100644 --- a/src/BaseDisplay.cc +++ b/src/BaseDisplay.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: BaseDisplay.cc,v 1.10 2002/03/19 21:19:55 fluxgen Exp $ | 25 | // $Id: BaseDisplay.cc,v 1.11 2002/03/23 02:02:00 pekdon Exp $ |
26 | 26 | ||
27 | // use GNU extensions | 27 | // use GNU extensions |
28 | #ifndef _GNU_SOURCE | 28 | #ifndef _GNU_SOURCE |
@@ -454,28 +454,29 @@ ScreenInfo::~ScreenInfo(void) { | |||
454 | // x,y. If it fails or Xinerama isn't | 454 | // x,y. If it fails or Xinerama isn't |
455 | // activated it'll return head nr 0 | 455 | // activated it'll return head nr 0 |
456 | //----------------------------------------- | 456 | //----------------------------------------- |
457 | unsigned int ScreenInfo::getHead(int x, int y) { | 457 | unsigned int ScreenInfo::getHead(int x, int y) const { |
458 | 458 | ||
459 | // is Xinerama extensions enabled? | 459 | // is Xinerama extensions enabled? |
460 | if (hasXinerama()) { | 460 | if (hasXinerama()) { |
461 | // check if last head is still active | 461 | // check if last head is still active |
462 | if ((xineramaInfos[xineramaLastHead].x_org <= x) && | 462 | /* if ((xineramaInfos[xineramaLastHead].x_org <= x) && |
463 | ((xineramaInfos[xineramaLastHead].x_org + | 463 | ((xineramaInfos[xineramaLastHead].x_org + |
464 | xineramaInfos[xineramaLastHead].width) > x) && | 464 | xineramaInfos[xineramaLastHead].width) > x) && |
465 | (xineramaInfos[xineramaLastHead].y_org <= y) && | 465 | (xineramaInfos[xineramaLastHead].y_org <= y) && |
466 | ((xineramaInfos[xineramaLastHead].y_org + | 466 | ((xineramaInfos[xineramaLastHead].y_org + |
467 | xineramaInfos[xineramaLastHead].height) > y)) { | 467 | xineramaInfos[xineramaLastHead].height) > y)) { |
468 | return xineramaLastHead; | 468 | return xineramaLastHead; |
469 | } else { | 469 | } else { */ |
470 | // go trough all the heads, and search | 470 | // go trough all the heads, and search |
471 | for (int i = 0; (signed) i < xineramaNumHeads; i++) { | 471 | for (int i = 0; (signed) i < xineramaNumHeads; i++) { |
472 | if (xineramaInfos[i].x_org <= x && | 472 | if (xineramaInfos[i].x_org <= x && |
473 | xineramaInfos[i].x_org + xineramaInfos[i].width) > x && | 473 | (xineramaInfos[i].x_org + xineramaInfos[i].width) > x && |
474 | xineramaInfos[i].y_org <= y && | 474 | xineramaInfos[i].y_org <= y && |
475 | xineramaInfos[i].y_org + xineramaInfos[i].height) > y) | 475 | (xineramaInfos[i].y_org + xineramaInfos[i].height) > y) |
476 | return (xineramaLastHead = i); | 476 | // return (xineramaLastHead = i); |
477 | return i; | ||
477 | } | 478 | } |
478 | } | 479 | // } |
479 | } | 480 | } |
480 | 481 | ||
481 | return 0; | 482 | return 0; |
@@ -506,7 +507,7 @@ unsigned int ScreenInfo::getCurrHead(void) const { | |||
506 | //----------- getHeadWidth ------------ | 507 | //----------- getHeadWidth ------------ |
507 | // Returns the width of head | 508 | // Returns the width of head |
508 | //------------------------------------- | 509 | //------------------------------------- |
509 | unsigned int ScreenInfo::getHeadWidth(unsigned int head) { | 510 | unsigned int ScreenInfo::getHeadWidth(unsigned int head) const { |
510 | 511 | ||
511 | if (hasXinerama()) { | 512 | if (hasXinerama()) { |
512 | if ((signed) head >= xineramaNumHeads) { | 513 | if ((signed) head >= xineramaNumHeads) { |
diff --git a/src/BaseDisplay.hh b/src/BaseDisplay.hh index d7075c1..30e90c0 100644 --- a/src/BaseDisplay.hh +++ b/src/BaseDisplay.hh | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: BaseDisplay.hh,v 1.17 2002/03/19 21:19:55 fluxgen Exp $ | 25 | // $Id: BaseDisplay.hh,v 1.18 2002/03/23 02:02:01 pekdon Exp $ |
26 | 26 | ||
27 | #ifndef BASEDISPLAY_HH | 27 | #ifndef BASEDISPLAY_HH |
28 | #define BASEDISPLAY_HH | 28 | #define BASEDISPLAY_HH |
@@ -172,8 +172,8 @@ public: | |||
172 | unsigned int getCurrHead(void) const; | 172 | unsigned int getCurrHead(void) const; |
173 | unsigned int getHeadWidth(unsigned int head) const; | 173 | unsigned int getHeadWidth(unsigned int head) const; |
174 | unsigned int getHeadHeight(unsigned int head) const; | 174 | unsigned int getHeadHeight(unsigned int head) const; |
175 | int getHeadX(unsigned int head); | 175 | int getHeadX(unsigned int head) const; |
176 | int getHeadY(unsigned int head); | 176 | int getHeadY(unsigned int head) const; |
177 | #endif // XINERAMA | 177 | #endif // XINERAMA |
178 | 178 | ||
179 | private: | 179 | private: |
diff --git a/src/Makefile.am b/src/Makefile.am index 0d71fa3..6d0d201 100644 --- a/src/Makefile.am +++ b/src/Makefile.am | |||
@@ -30,7 +30,7 @@ DEFAULT_KEYSFILE=$(pkgdatadir)/keys | |||
30 | DEFAULT_INITFILE= | 30 | DEFAULT_INITFILE= |
31 | 31 | ||
32 | CPPFLAGS= -Wall @CPPFLAGS@ @SHAPE@ @SLIT@ @INTERLACE@ @ORDEREDPSEUDO@ \ | 32 | CPPFLAGS= -Wall @CPPFLAGS@ @SHAPE@ @SLIT@ @INTERLACE@ @ORDEREDPSEUDO@ \ |
33 | @DEBUG@ @NEWWMSPEC@ @NLS@ @TIMEDCACHE@ @KDE@ @GNOME@ \ | 33 | @DEBUG@ @NEWWMSPEC@ @NLS@ @TIMEDCACHE@ @KDE@ @GNOME@ @XINERAMA@ \ |
34 | -DLOCALEPATH=\"$(pkgdatadir)/nls\" \ | 34 | -DLOCALEPATH=\"$(pkgdatadir)/nls\" \ |
35 | -DDEFAULTMENU=\"$(DEFAULT_MENU)\" \ | 35 | -DDEFAULTMENU=\"$(DEFAULT_MENU)\" \ |
36 | -DDEFAULTSTYLE=\"$(DEFAULT_STYLE)\" \ | 36 | -DDEFAULTSTYLE=\"$(DEFAULT_STYLE)\" \ |
diff --git a/util/Makefile.am b/util/Makefile.am index 20123cb..773c43c 100644 --- a/util/Makefile.am +++ b/util/Makefile.am | |||
@@ -1,7 +1,7 @@ | |||
1 | # util/Makefile.am for Blackbox 0.61.x - an X11 Window manager | 1 | # util/Makefile.am for Blackbox 0.61.x - an X11 Window manager |
2 | 2 | ||
3 | CPPFLAGS= @CPPFLAGS@ @DEBUG@ @NLS@ @TIMEDCACHE@ @NEWWMSPEC@ @INTERLACE@ \ | 3 | CPPFLAGS= @CPPFLAGS@ @DEBUG@ @NLS@ @TIMEDCACHE@ @NEWWMSPEC@ @INTERLACE@ \ |
4 | @ORDEREDPSEUDO@ @KDE@ @GNOME@ | 4 | @ORDEREDPSEUDO@ @KDE@ @GNOME@ @XINERAMA@ |
5 | 5 | ||
6 | bin_SCRIPTS = bsetbg | 6 | bin_SCRIPTS = bsetbg |
7 | bin_PROGRAMS = bsetroot | 7 | bin_PROGRAMS = bsetroot |