diff options
-rw-r--r-- | Makefile.in | 9 | ||||
-rw-r--r-- | TODO | 16 | ||||
-rw-r--r-- | nls/ru_RU/Makefile.in | 9 | ||||
-rw-r--r-- | nls/ru_RU/Windowmenu.m | 12 | ||||
-rw-r--r-- | src/Configmenu.cc | 2 | ||||
-rw-r--r-- | src/Makefile.in | 100 | ||||
-rw-r--r-- | src/Screen.cc | 2 | ||||
-rw-r--r-- | src/Screen.hh | 8 | ||||
-rw-r--r-- | src/Tab.cc | 117 | ||||
-rw-r--r-- | src/Window.cc | 58 | ||||
-rw-r--r-- | src/Windowmenu.cc | 11 | ||||
-rw-r--r-- | src/fluxbox.cc | 66 | ||||
-rw-r--r-- | src/fluxbox.hh | 6 |
13 files changed, 261 insertions, 155 deletions
diff --git a/Makefile.in b/Makefile.in index 7033a27..6809d5f 100644 --- a/Makefile.in +++ b/Makefile.in | |||
@@ -105,9 +105,9 @@ GZIP_ENV = --best | |||
105 | all: all-redirect | 105 | all: all-redirect |
106 | .SUFFIXES: | 106 | .SUFFIXES: |
107 | $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) | 107 | $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) |
108 | cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile | 108 | cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile |
109 | 109 | ||
110 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | 110 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) |
111 | cd $(top_builddir) \ | 111 | cd $(top_builddir) \ |
112 | && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status | 112 | && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status |
113 | 113 | ||
@@ -276,6 +276,11 @@ distdir: $(DISTFILES) | |||
276 | -rm -rf $(distdir) | 276 | -rm -rf $(distdir) |
277 | mkdir $(distdir) | 277 | mkdir $(distdir) |
278 | -chmod 777 $(distdir) | 278 | -chmod 777 $(distdir) |
279 | here=`cd $(top_builddir) && pwd`; \ | ||
280 | top_distdir=`cd $(distdir) && pwd`; \ | ||
281 | distdir=`cd $(distdir) && pwd`; \ | ||
282 | cd $(top_srcdir) \ | ||
283 | && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile | ||
279 | @for file in $(DISTFILES); do \ | 284 | @for file in $(DISTFILES); do \ |
280 | d=$(srcdir); \ | 285 | d=$(srcdir); \ |
281 | if test -d $$d/$$file; then \ | 286 | if test -d $$d/$$file; then \ |
@@ -1,15 +1,17 @@ | |||
1 | TODO for Fluxbox 0.2.0 | 1 | TODO for Fluxbox 0.2.0 |
2 | !* Fix "no font" crash | ||
3 | * Remove cyclic dep on Basemenu with class Fluxbox | ||
2 | * sloppy focus - auto-raise | 4 | * sloppy focus - auto-raise |
3 | - Fix configurable toolbar | 5 | * Fix configurable toolbar |
4 | so the user can configure toolbar in a config file | 6 | so the user can configure toolbar in a config file |
5 | 7 | ||
6 | - Fix so config file is created @ $HOME if first use | 8 | * Fix so config file is created @ $HOME if first use |
7 | and config files is copied and configured | 9 | and config files is copied and configured |
8 | 10 | ||
9 | - Fix so toolbar dont hide if its autohide and | 11 | * Fix so toolbar dont hide if its autohide and |
10 | you are in "change workspace mode" | 12 | you are in "change workspace mode" |
11 | 13 | ||
12 | - grabKillWindow to keygrabber grabCloseWindow | 14 | * grabKillWindow to keygrabber grabCloseWindow |
13 | 15 | ||
14 | * Fluxbox::real_reconfigure ...check "session.styleFile %s" | 16 | * Fluxbox::real_reconfigure ...check "session.styleFile %s" |
15 | * grabRootmenu | 17 | * grabRootmenu |
@@ -22,13 +24,13 @@ TODO for Fluxbox 0.2.0 | |||
22 | * 0,0-pos fix | 24 | * 0,0-pos fix |
23 | * reconfigure tar upp nya dekorationer | 25 | * reconfigure tar upp nya dekorationer |
24 | 26 | ||
25 | 07:39AM <dopey> also, (2) fluxbox wont currently build on linux-hppa, needs the config.{sub, | 27 | * fluxbox wont currently build on linux-hppa, needs the config.{sub, |
26 | guess} updated from ftp://ftp.gnu.org/pub/gnu/config/ | 28 | guess} updated from ftp://ftp.gnu.org/pub/gnu/config/ |
27 | 29 | ||
28 | * Create fbrun style app | 30 | * Create fbrun style app |
29 | * Add wheelscroll-workspace-change configuration (reversed order or | 31 | (* Add wheelscroll-workspace-change configuration (reversed order or |
30 | regular)- Add "system menu" for minimized apps in the toolbar. | 32 | regular)- Add "system menu" for minimized apps in the toolbar. |
31 | (Close, Kill, Send to, etc) | 33 | (Close, Kill, Send to, etc) ) |
32 | 34 | ||
33 | * HUP the window manager, so it re-reads the | 35 | * HUP the window manager, so it re-reads the |
34 | .fluxbox/init - rather than having to kill the window manager to change those | 36 | .fluxbox/init - rather than having to kill the window manager to change those |
diff --git a/nls/ru_RU/Makefile.in b/nls/ru_RU/Makefile.in index b2bb324..c1533c5 100644 --- a/nls/ru_RU/Makefile.in +++ b/nls/ru_RU/Makefile.in | |||
@@ -104,9 +104,9 @@ GZIP_ENV = --best | |||
104 | all: all-redirect | 104 | all: all-redirect |
105 | .SUFFIXES: | 105 | .SUFFIXES: |
106 | $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) | 106 | $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) |
107 | cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps nls/ru_RU/Makefile | 107 | cd $(top_srcdir) && $(AUTOMAKE) --gnu nls/ru_RU/Makefile |
108 | 108 | ||
109 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | 109 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) |
110 | cd $(top_builddir) \ | 110 | cd $(top_builddir) \ |
111 | && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status | 111 | && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status |
112 | 112 | ||
@@ -119,6 +119,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) | |||
119 | subdir = nls/ru_RU | 119 | subdir = nls/ru_RU |
120 | 120 | ||
121 | distdir: $(DISTFILES) | 121 | distdir: $(DISTFILES) |
122 | here=`cd $(top_builddir) && pwd`; \ | ||
123 | top_distdir=`cd $(top_distdir) && pwd`; \ | ||
124 | distdir=`cd $(distdir) && pwd`; \ | ||
125 | cd $(top_srcdir) \ | ||
126 | && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu nls/ru_RU/Makefile | ||
122 | @for file in $(DISTFILES); do \ | 127 | @for file in $(DISTFILES); do \ |
123 | d=$(srcdir); \ | 128 | d=$(srcdir); \ |
124 | if test -d $$d/$$file; then \ | 129 | if test -d $$d/$$file; then \ |
diff --git a/nls/ru_RU/Windowmenu.m b/nls/ru_RU/Windowmenu.m index 0883c25..763e35f 100644 --- a/nls/ru_RU/Windowmenu.m +++ b/nls/ru_RU/Windowmenu.m | |||
@@ -2,19 +2,23 @@ $set 10 #Windowmenu | |||
2 | 2 | ||
3 | $ #SendTo | 3 | $ #SendTo |
4 | # Отправить на ... | 4 | # Отправить на ... |
5 | $ #Send Group To | ||
6 | # Отправить группу на... | ||
5 | $ #Shade | 7 | $ #Shade |
6 | # Свернуть в заголовок | 8 | # Свернуть в заголовок |
7 | $ #Iconify | 9 | $ #Iconify |
8 | # Свернуть в иконку | 10 | # Свернуть на панель инструментов |
9 | $ #Maximize | 11 | $ #Maximize |
10 | # Максимизировать | 12 | # Максимизировать |
11 | $ #Raise | 13 | $ #Raise |
12 | # Поднять наверх | 14 | # На передний план |
13 | $ #Lower | 15 | $ #Lower |
14 | # Опустить вниз | 16 | # На задний план |
15 | $ #Stick | 17 | $ #Stick |
16 | # Приклеить | 18 | # Приклеить |
17 | $ #KillClient | 19 | $ #KillClient |
18 | # Убить клиентское приложение | 20 | # Снять клиентское приложение |
19 | $ #Close | 21 | $ #Close |
20 | # Закрыть | 22 | # Закрыть |
23 | $ #Tab | ||
24 | # Tab | ||
diff --git a/src/Configmenu.cc b/src/Configmenu.cc index b701754..5eda254 100644 --- a/src/Configmenu.cc +++ b/src/Configmenu.cc | |||
@@ -256,7 +256,7 @@ Configmenu::Focusmenu::Focusmenu(Configmenu *cm) : Basemenu(cm->screen) { | |||
256 | #else // !NLS | 256 | #else // !NLS |
257 | 0, 0, | 257 | 0, 0, |
258 | #endif // NLS | 258 | #endif // NLS |
259 | "Auto Raise"), 3); | 259 | "Auto Raise"), 4); |
260 | 260 | ||
261 | update(); | 261 | update(); |
262 | 262 | ||
diff --git a/src/Makefile.in b/src/Makefile.in index d4bcb63..6f76edd 100644 --- a/src/Makefile.in +++ b/src/Makefile.in | |||
@@ -119,7 +119,8 @@ CPPFLAGS = -Wall @CPPFLAGS@ @SHAPE@ @SLIT@ @INTERLACE@ @ORDEREDPSEUDO@ @DEBUG@ @ | |||
119 | 119 | ||
120 | bin_PROGRAMS = fluxbox | 120 | bin_PROGRAMS = fluxbox |
121 | 121 | ||
122 | fluxbox_SOURCES = BaseDisplay.cc BaseDisplay.hh Basemenu.cc Basemenu.hh Clientmenu.cc Clientmenu.hh Configmenu.cc Configmenu.hh Icon.cc Icon.hh Image.cc Image.hh LinkedList.cc LinkedList.hh Netizen.cc Netizen.hh Rootmenu.cc Rootmenu.hh Screen.cc Screen.hh Slit.cc Slit.hh Timer.cc Timer.hh Toolbar.cc Toolbar.hh Window.cc Window.hh Windowmenu.cc Windowmenu.hh Workspace.cc Workspace.hh Workspacemenu.cc Workspacemenu.hh fluxbox.cc fluxbox.hh bsd-snprintf.c bsd-snprintf.h i18n.cc i18n.hh main.cc Tab.hh Tab.cc Keys.cc Keys.hh IconBar.cc IconBar.hh Theme.hh Theme.cc misc.hh misc.cc Rotated.hh | 122 | fluxbox_SOURCES = BaseDisplay.cc BaseDisplay.hh Basemenu.cc Basemenu.hh Clientmenu.cc Clientmenu.hh Configmenu.cc Configmenu.hh Icon.cc Icon.hh Image.cc Image.hh LinkedList.cc LinkedList.hh Netizen.cc Netizen.hh Rootmenu.cc Rootmenu.hh Screen.cc Screen.hh Slit.cc Slit.hh Timer.cc Timer.hh Toolbar.cc Toolbar.hh Window.cc Window.hh Windowmenu.cc Windowmenu.hh Workspace.cc Workspace.hh Workspacemenu.cc Workspacemenu.hh fluxbox.cc fluxbox.hh bsd-snprintf.c bsd-snprintf.h i18n.cc i18n.hh main.cc Tab.hh Tab.cc Keys.cc Keys.hh IconBar.cc IconBar.hh Theme.hh Theme.cc misc.hh misc.cc |
123 | |||
123 | 124 | ||
124 | MAINTAINERCLEANFILES = Makefile.in | 125 | MAINTAINERCLEANFILES = Makefile.in |
125 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | 126 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs |
@@ -160,6 +161,13 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) | |||
160 | 161 | ||
161 | TAR = tar | 162 | TAR = tar |
162 | GZIP_ENV = --best | 163 | GZIP_ENV = --best |
164 | DEP_FILES = .deps/BaseDisplay.P .deps/Basemenu.P .deps/Clientmenu.P \ | ||
165 | .deps/Configmenu.P .deps/Icon.P .deps/IconBar.P .deps/Image.P \ | ||
166 | .deps/Keys.P .deps/LinkedList.P .deps/Netizen.P .deps/Rootmenu.P \ | ||
167 | .deps/Screen.P .deps/Slit.P .deps/Tab.P .deps/Theme.P .deps/Timer.P \ | ||
168 | .deps/Toolbar.P .deps/Window.P .deps/Windowmenu.P .deps/Workspace.P \ | ||
169 | .deps/Workspacemenu.P .deps/bsd-snprintf.P .deps/fluxbox.P .deps/i18n.P \ | ||
170 | .deps/main.P .deps/misc.P | ||
163 | SOURCES = $(fluxbox_SOURCES) | 171 | SOURCES = $(fluxbox_SOURCES) |
164 | OBJECTS = $(fluxbox_OBJECTS) | 172 | OBJECTS = $(fluxbox_OBJECTS) |
165 | 173 | ||
@@ -167,9 +175,9 @@ all: all-redirect | |||
167 | .SUFFIXES: | 175 | .SUFFIXES: |
168 | .SUFFIXES: .S .c .cc .lo .o .s | 176 | .SUFFIXES: .S .c .cc .lo .o .s |
169 | $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) | 177 | $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) |
170 | cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile | 178 | cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile |
171 | 179 | ||
172 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | 180 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) |
173 | cd $(top_builddir) \ | 181 | cd $(top_builddir) \ |
174 | && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status | 182 | && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status |
175 | 183 | ||
@@ -199,9 +207,6 @@ uninstall-binPROGRAMS: | |||
199 | rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ | 207 | rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ |
200 | done | 208 | done |
201 | 209 | ||
202 | .c.o: | ||
203 | $(COMPILE) -c $< | ||
204 | |||
205 | .s.o: | 210 | .s.o: |
206 | $(COMPILE) -c $< | 211 | $(COMPILE) -c $< |
207 | 212 | ||
@@ -218,9 +223,6 @@ distclean-compile: | |||
218 | 223 | ||
219 | maintainer-clean-compile: | 224 | maintainer-clean-compile: |
220 | 225 | ||
221 | .c.lo: | ||
222 | $(LIBTOOL) --mode=compile $(COMPILE) -c $< | ||
223 | |||
224 | .s.lo: | 226 | .s.lo: |
225 | $(LIBTOOL) --mode=compile $(COMPILE) -c $< | 227 | $(LIBTOOL) --mode=compile $(COMPILE) -c $< |
226 | 228 | ||
@@ -279,6 +281,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) | |||
279 | subdir = src | 281 | subdir = src |
280 | 282 | ||
281 | distdir: $(DISTFILES) | 283 | distdir: $(DISTFILES) |
284 | here=`cd $(top_builddir) && pwd`; \ | ||
285 | top_distdir=`cd $(top_distdir) && pwd`; \ | ||
286 | distdir=`cd $(distdir) && pwd`; \ | ||
287 | cd $(top_srcdir) \ | ||
288 | && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile | ||
282 | @for file in $(DISTFILES); do \ | 289 | @for file in $(DISTFILES); do \ |
283 | d=$(srcdir); \ | 290 | d=$(srcdir); \ |
284 | if test -d $$d/$$file; then \ | 291 | if test -d $$d/$$file; then \ |
@@ -290,6 +297,56 @@ distdir: $(DISTFILES) | |||
290 | fi; \ | 297 | fi; \ |
291 | done | 298 | done |
292 | 299 | ||
300 | DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) | ||
301 | |||
302 | -include $(DEP_FILES) | ||
303 | |||
304 | mostlyclean-depend: | ||
305 | |||
306 | clean-depend: | ||
307 | |||
308 | distclean-depend: | ||
309 | -rm -rf .deps | ||
310 | |||
311 | maintainer-clean-depend: | ||
312 | |||
313 | %.o: %.c | ||
314 | @echo '$(COMPILE) -c $<'; \ | ||
315 | $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< | ||
316 | @-cp .deps/$(*F).pp .deps/$(*F).P; \ | ||
317 | tr ' ' '\012' < .deps/$(*F).pp \ | ||
318 | | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ | ||
319 | >> .deps/$(*F).P; \ | ||
320 | rm .deps/$(*F).pp | ||
321 | |||
322 | %.lo: %.c | ||
323 | @echo '$(LTCOMPILE) -c $<'; \ | ||
324 | $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< | ||
325 | @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ | ||
326 | < .deps/$(*F).pp > .deps/$(*F).P; \ | ||
327 | tr ' ' '\012' < .deps/$(*F).pp \ | ||
328 | | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ | ||
329 | >> .deps/$(*F).P; \ | ||
330 | rm -f .deps/$(*F).pp | ||
331 | |||
332 | %.o: %.cc | ||
333 | @echo '$(CXXCOMPILE) -c $<'; \ | ||
334 | $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< | ||
335 | @-cp .deps/$(*F).pp .deps/$(*F).P; \ | ||
336 | tr ' ' '\012' < .deps/$(*F).pp \ | ||
337 | | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ | ||
338 | >> .deps/$(*F).P; \ | ||
339 | rm .deps/$(*F).pp | ||
340 | |||
341 | %.lo: %.cc | ||
342 | @echo '$(LTCXXCOMPILE) -c $<'; \ | ||
343 | $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< | ||
344 | @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ | ||
345 | < .deps/$(*F).pp > .deps/$(*F).P; \ | ||
346 | tr ' ' '\012' < .deps/$(*F).pp \ | ||
347 | | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ | ||
348 | >> .deps/$(*F).P; \ | ||
349 | rm -f .deps/$(*F).pp | ||
293 | info-am: | 350 | info-am: |
294 | info: info-am | 351 | info: info-am |
295 | dvi-am: | 352 | dvi-am: |
@@ -328,26 +385,27 @@ distclean-generic: | |||
328 | maintainer-clean-generic: | 385 | maintainer-clean-generic: |
329 | -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) | 386 | -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) |
330 | mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ | 387 | mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ |
331 | mostlyclean-libtool mostlyclean-tags \ | 388 | mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ |
332 | mostlyclean-generic | 389 | mostlyclean-generic |
333 | 390 | ||
334 | mostlyclean: mostlyclean-am | 391 | mostlyclean: mostlyclean-am |
335 | 392 | ||
336 | clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ | 393 | clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ |
337 | clean-generic mostlyclean-am | 394 | clean-depend clean-generic mostlyclean-am |
338 | 395 | ||
339 | clean: clean-am | 396 | clean: clean-am |
340 | 397 | ||
341 | distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ | 398 | distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ |
342 | distclean-tags distclean-generic clean-am | 399 | distclean-tags distclean-depend distclean-generic \ |
400 | clean-am | ||
343 | -rm -f libtool | 401 | -rm -f libtool |
344 | 402 | ||
345 | distclean: distclean-am | 403 | distclean: distclean-am |
346 | 404 | ||
347 | maintainer-clean-am: maintainer-clean-binPROGRAMS \ | 405 | maintainer-clean-am: maintainer-clean-binPROGRAMS \ |
348 | maintainer-clean-compile maintainer-clean-libtool \ | 406 | maintainer-clean-compile maintainer-clean-libtool \ |
349 | maintainer-clean-tags maintainer-clean-generic \ | 407 | maintainer-clean-tags maintainer-clean-depend \ |
350 | distclean-am | 408 | maintainer-clean-generic distclean-am |
351 | @echo "This command is intended for maintainers to use;" | 409 | @echo "This command is intended for maintainers to use;" |
352 | @echo "it deletes files that may require special tools to rebuild." | 410 | @echo "it deletes files that may require special tools to rebuild." |
353 | 411 | ||
@@ -358,12 +416,14 @@ maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ | |||
358 | mostlyclean-compile distclean-compile clean-compile \ | 416 | mostlyclean-compile distclean-compile clean-compile \ |
359 | maintainer-clean-compile mostlyclean-libtool distclean-libtool \ | 417 | maintainer-clean-compile mostlyclean-libtool distclean-libtool \ |
360 | clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ | 418 | clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ |
361 | distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ | 419 | distclean-tags clean-tags maintainer-clean-tags distdir \ |
362 | dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ | 420 | mostlyclean-depend distclean-depend clean-depend \ |
363 | install-exec install-data-am install-data install-am install \ | 421 | maintainer-clean-depend info-am info dvi-am dvi check check-am \ |
364 | uninstall-am uninstall all-redirect all-am all installdirs \ | 422 | installcheck-am installcheck install-exec-am install-exec \ |
365 | mostlyclean-generic distclean-generic clean-generic \ | 423 | install-data-am install-data install-am install uninstall-am uninstall \ |
366 | maintainer-clean-generic clean mostlyclean distclean maintainer-clean | 424 | all-redirect all-am all installdirs mostlyclean-generic \ |
425 | distclean-generic clean-generic maintainer-clean-generic clean \ | ||
426 | mostlyclean distclean maintainer-clean | ||
367 | 427 | ||
368 | 428 | ||
369 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | 429 | # Tell versions [3.59,3.63) of GNU make to not export all variables. |
diff --git a/src/Screen.cc b/src/Screen.cc index 73e2aab..2d04566 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -676,8 +676,6 @@ void BScreen::changeWorkspaceID(int id) { | |||
676 | current_workspace->getLastFocusedWindow()->setInputFocus(); | 676 | current_workspace->getLastFocusedWindow()->setInputFocus(); |
677 | } | 677 | } |
678 | } | 678 | } |
679 | |||
680 | |||
681 | 679 | ||
682 | updateNetizenCurrentWorkspace(); | 680 | updateNetizenCurrentWorkspace(); |
683 | } | 681 | } |
diff --git a/src/Screen.hh b/src/Screen.hh index 95f53c1..9c2b5af 100644 --- a/src/Screen.hh +++ b/src/Screen.hh | |||
@@ -168,6 +168,10 @@ public: | |||
168 | { return resource.row_direction; } | 168 | { return resource.row_direction; } |
169 | inline const int &getColPlacementDirection(void) const | 169 | inline const int &getColPlacementDirection(void) const |
170 | { return resource.col_direction; } | 170 | { return resource.col_direction; } |
171 | inline const unsigned int &getTabWidth(void) const | ||
172 | { return resource.tab_width; } | ||
173 | inline const unsigned int &getTabHeight(void) const | ||
174 | { return resource.tab_height; } | ||
171 | inline const int getTabPlacement(void) | 175 | inline const int getTabPlacement(void) |
172 | { return resource.tab_placement; } | 176 | { return resource.tab_placement; } |
173 | inline const int getTabAlignment(void) | 177 | inline const int getTabAlignment(void) |
@@ -193,6 +197,8 @@ public: | |||
193 | inline void saveFullMax(Bool f) { resource.full_max = f; } | 197 | inline void saveFullMax(Bool f) { resource.full_max = f; } |
194 | inline void saveFocusNew(Bool f) { resource.focus_new = f; } | 198 | inline void saveFocusNew(Bool f) { resource.focus_new = f; } |
195 | inline void saveFocusLast(Bool f) { resource.focus_last = f; } | 199 | inline void saveFocusLast(Bool f) { resource.focus_last = f; } |
200 | inline void saveTabWidth(unsigned int w) { resource.tab_width = w; } | ||
201 | inline void saveTabHeight(unsigned int h) { resource.tab_height = h; } | ||
196 | inline void saveTabPlacement(unsigned int p) { resource.tab_placement = p; } | 202 | inline void saveTabPlacement(unsigned int p) { resource.tab_placement = p; } |
197 | inline void saveTabAlignment(unsigned int a) { resource.tab_alignment = a; } | 203 | inline void saveTabAlignment(unsigned int a) { resource.tab_alignment = a; } |
198 | inline void saveTabRotateVertical(Bool r) | 204 | inline void saveTabRotateVertical(Bool r) |
@@ -309,7 +315,7 @@ private: | |||
309 | int workspaces, toolbar_placement, toolbar_width_percent, placement_policy, | 315 | int workspaces, toolbar_placement, toolbar_width_percent, placement_policy, |
310 | edge_snap_threshold, row_direction, col_direction; | 316 | edge_snap_threshold, row_direction, col_direction; |
311 | 317 | ||
312 | unsigned int tab_placement, tab_alignment; | 318 | unsigned int tab_placement, tab_alignment, tab_width, tab_height; |
313 | 319 | ||
314 | #ifdef SLIT | 320 | #ifdef SLIT |
315 | Bool slit_on_top, slit_auto_hide; | 321 | Bool slit_on_top, slit_auto_hide; |
@@ -60,11 +60,11 @@ Tab::Tab(FluxboxWindow *win, Tab *prev, Tab *next) { | |||
60 | if ((m_win->screen->getTabPlacement() == PLeft || | 60 | if ((m_win->screen->getTabPlacement() == PLeft || |
61 | m_win->screen->getTabPlacement() == PRight) && | 61 | m_win->screen->getTabPlacement() == PRight) && |
62 | m_win->screen->isTabRotateVertical()) { | 62 | m_win->screen->isTabRotateVertical()) { |
63 | m_size_w = Fluxbox::instance()->getTabHeight(); | 63 | m_size_w = m_win->screen->getTabHeight(); |
64 | m_size_h = Fluxbox::instance()->getTabWidth(); | 64 | m_size_h = m_win->screen->getTabWidth(); |
65 | } else { | 65 | } else { |
66 | m_size_w = Fluxbox::instance()->getTabWidth(); | 66 | m_size_w = m_win->screen->getTabWidth(); |
67 | m_size_h = Fluxbox::instance()->getTabHeight(); | 67 | m_size_h = m_win->screen->getTabHeight(); |
68 | } | 68 | } |
69 | 69 | ||
70 | createTabWindow(); | 70 | createTabWindow(); |
@@ -297,7 +297,7 @@ void Tab::shade() { | |||
297 | for(Tab *first = getFirst(this); first != 0; first = first->m_next) { | 297 | for(Tab *first = getFirst(this); first != 0; first = first->m_next) { |
298 | if (first==this) | 298 | if (first==this) |
299 | continue; | 299 | continue; |
300 | first->m_win->shade(); | 300 | first->m_win->shade(); |
301 | } | 301 | } |
302 | 302 | ||
303 | if (m_win->screen->getTabPlacement() == PLeft || | 303 | if (m_win->screen->getTabPlacement() == PLeft || |
@@ -633,7 +633,7 @@ void Tab::buttonReleaseEvent(XButtonEvent *be) { | |||
633 | dest_y -= (m_win->frame.height / 2) - (m_size_h / 2); | 633 | dest_y -= (m_win->frame.height / 2) - (m_size_h / 2); |
634 | break; | 634 | break; |
635 | case ALeft: | 635 | case ALeft: |
636 | dest_y -= m_win->frame.height + m_size_h; | 636 | dest_y -= m_win->frame.height - m_size_h; |
637 | break; | 637 | break; |
638 | } | 638 | } |
639 | break; | 639 | break; |
@@ -645,13 +645,13 @@ void Tab::buttonReleaseEvent(XButtonEvent *be) { | |||
645 | dest_y -= (m_win->frame.height / 2) - (m_size_h / 2); | 645 | dest_y -= (m_win->frame.height / 2) - (m_size_h / 2); |
646 | break; | 646 | break; |
647 | case ALeft: | 647 | case ALeft: |
648 | dest_y -= m_win->frame.height + m_size_h; | 648 | dest_y -= m_win->frame.height - m_size_h; |
649 | break; | 649 | break; |
650 | } | 650 | } |
651 | break; | 651 | break; |
652 | } | 652 | } |
653 | //TODO: this causes an calculate increase event, even if | 653 | //TODO: this causes an calculate increase event, even if we |
654 | // only moving a tab! | 654 | // only are moving a window |
655 | m_win->configure(dest_x, dest_y, m_win->frame.width, m_win->frame.height); | 655 | m_win->configure(dest_x, dest_y, m_win->frame.width, m_win->frame.height); |
656 | } | 656 | } |
657 | } | 657 | } |
@@ -831,73 +831,56 @@ void Tab::insert(Tab *tab) { | |||
831 | 831 | ||
832 | m_next = tab; | 832 | m_next = tab; |
833 | 833 | ||
834 | bool resize_tabs = false; | ||
835 | |||
834 | //TODO: cleanup and optimize | 836 | //TODO: cleanup and optimize |
835 | //move and resize all windows in the tablist we inserted | 837 | //move and resize all windows in the tablist we inserted |
836 | //only from first tab of the inserted chain to the last | 838 | //only from first tab of the inserted chain to the last |
837 | for (; tab!=last->m_next; tab=tab->m_next) { | 839 | for (; tab!=last->m_next; tab=tab->m_next) { |
838 | if (m_win->isShaded() != tab->m_win->isShaded()) { | 840 | if (m_win->isShaded() != tab->m_win->isShaded()) { |
841 | tab->m_stoptabs = true; // we don't want any actions performed on the | ||
842 | // tabs, just the tab windows! | ||
839 | if (m_win->screen->getTabPlacement() == PLeft || | 843 | if (m_win->screen->getTabPlacement() == PLeft || |
840 | m_win->screen->getTabPlacement() == PRight) { | 844 | m_win->screen->getTabPlacement() == PRight) |
841 | // if window were grouping to, we need to shade the tab window | 845 | resize_tabs = true; |
842 | // _after_ reconfigure | ||
843 | if(m_win->isShaded()) { | ||
844 | tab->m_win->configure(m_win->frame.x, m_win->frame.y, | ||
845 | m_win->frame.width, m_win->frame.height); | ||
846 | tab->m_win->shade(); | ||
847 | // don't need unshading as configure will fix that for me | ||
848 | } else { | ||
849 | if ((m_win->frame.width != tab->m_win->frame.width) || | ||
850 | (m_win->frame.height != tab->m_win->frame.height)) { | ||
851 | tab->m_win->configure(m_win->frame.x, m_win->frame.y, | ||
852 | m_win->frame.width, m_win->frame.height); | ||
853 | } else // need to change shade state as configure _won't_ | ||
854 | // do the trick if the new and old size is the same | ||
855 | tab->m_win->shade(); | ||
856 | } | ||
857 | |||
858 | tab->resizeGroup(); | ||
859 | tab->calcIncrease(); | ||
860 | |||
861 | } else { // PTop & PBottom | ||
862 | if(m_win->isShaded()) { | ||
863 | 846 | ||
847 | // if the window we are grouping to, we need to shade the tab window | ||
848 | // _after_ reconfigure | ||
849 | if(m_win->isShaded()) { | ||
864 | tab->m_win->configure(m_win->frame.x, m_win->frame.y, | 850 | tab->m_win->configure(m_win->frame.x, m_win->frame.y, |
865 | m_win->frame.width, m_win->frame.height); | 851 | m_win->frame.width, m_win->frame.height); |
866 | tab->m_win->shade(); | 852 | tab->m_win->shade(); |
867 | // don't need unshading as configure will fix that for me | 853 | } else { |
868 | } else { | 854 | tab->m_win->shade(); // switch to correct shade state |
869 | if ((m_win->frame.width != tab->m_win->frame.width) || | 855 | tab->m_win->configure(m_win->frame.x, m_win->frame.y, |
870 | (m_win->frame.height != tab->m_win->frame.height)) { | 856 | m_win->frame.width, m_win->frame.height); |
871 | |||
872 | tab->m_win->configure(m_win->frame.x, m_win->frame.y, | ||
873 | m_win->frame.width, m_win->frame.height); | ||
874 | } else | ||
875 | tab->m_win->shade(); | ||
876 | } | ||
877 | } | 857 | } |
878 | 858 | ||
879 | // both window have the same shaded state | 859 | tab->m_stoptabs = false; |
880 | } else { | ||
881 | if ((m_win->frame.width != tab->m_win->frame.width) || | ||
882 | (m_win->frame.height != tab->m_win->frame.height)) { | ||
883 | 860 | ||
884 | tab->m_win->configure(m_win->frame.x, m_win->frame.y, | 861 | // both window have the same shaded state and have different sizes, |
885 | m_win->frame.width, m_win->frame.height); | 862 | // checking this so that I'll only do shade on windows if configure did |
863 | // anything. | ||
864 | } else if ((m_win->frame.width != tab->m_win->frame.width) || | ||
865 | (m_win->frame.height != tab->m_win->frame.height)) { | ||
886 | 866 | ||
887 | // need to shade the tab window as configure will mess it up | 867 | tab->m_win->configure(m_win->frame.x, m_win->frame.y, |
888 | if (m_win->isShaded()) | 868 | m_win->frame.width, m_win->frame.height); |
889 | tab->m_win->shade(); | ||
890 | } | ||
891 | } | ||
892 | 869 | ||
893 | // TODO: should check if alignemnt is left or right, | 870 | // need to shade the tab window as configure will mess it up |
894 | // cus then resize is allready done resize tabs | 871 | if (m_win->isShaded()) |
895 | if(m_win->screen->getTabAlignment() == ARelative) { | 872 | tab->m_win->shade(); |
896 | tab->resizeGroup(); | ||
897 | tab->calcIncrease(); | ||
898 | } | 873 | } |
899 | m_win->tab->setPosition(); | 874 | } |
900 | } | 875 | |
876 | // resize if in relative mode or resize_tabs is true | ||
877 | if(m_win->screen->getTabAlignment() == ARelative || | ||
878 | resize_tabs) { | ||
879 | resizeGroup(); | ||
880 | calcIncrease(); | ||
881 | } | ||
882 | // reposition tabs | ||
883 | setPosition(); | ||
901 | } | 884 | } |
902 | 885 | ||
903 | //---------- disconnect() -------------- | 886 | //---------- disconnect() -------------- |
@@ -970,11 +953,11 @@ void Tab::resizeGroup(void) { | |||
970 | m_win->screen->getTabPlacement() == PRight) && | 953 | m_win->screen->getTabPlacement() == PRight) && |
971 | m_win->screen->isTabRotateVertical() && | 954 | m_win->screen->isTabRotateVertical() && |
972 | !m_win->isShaded()) { | 955 | !m_win->isShaded()) { |
973 | first->setTabWidth(Fluxbox::instance()->getTabHeight()); | 956 | first->setTabWidth(m_win->screen->getTabHeight()); |
974 | first->setTabHeight(Fluxbox::instance()->getTabWidth()); | 957 | first->setTabHeight(m_win->screen->getTabWidth()); |
975 | } else { | 958 | } else { |
976 | first->setTabWidth(Fluxbox::instance()->getTabWidth()); | 959 | first->setTabWidth(m_win->screen->getTabWidth()); |
977 | first->setTabHeight(Fluxbox::instance()->getTabHeight()); | 960 | first->setTabHeight(m_win->screen->getTabHeight()); |
978 | } | 961 | } |
979 | //TODO: do I have to set this all the time? | 962 | //TODO: do I have to set this all the time? |
980 | first->m_configured = true; //used in Fluxbox::reconfigure() | 963 | first->m_configured = true; //used in Fluxbox::reconfigure() |
@@ -1032,8 +1015,7 @@ unsigned int Tab::calcCenterYPos() { | |||
1032 | 1015 | ||
1033 | //------- getTabPlacementString ---------- | 1016 | //------- getTabPlacementString ---------- |
1034 | // Returns the tabplacement string of the | 1017 | // Returns the tabplacement string of the |
1035 | // tabplacement number on success else | 1018 | // tabplacement number on success else 0. |
1036 | // 0. | ||
1037 | //---------------------------------------- | 1019 | //---------------------------------------- |
1038 | const char *Tab::getTabPlacementString(int placement) { | 1020 | const char *Tab::getTabPlacementString(int placement) { |
1039 | for (int i=0; i<(pnone / 5); i++) { | 1021 | for (int i=0; i<(pnone / 5); i++) { |
@@ -1059,8 +1041,7 @@ int Tab::getTabPlacementNum(const char *string) { | |||
1059 | 1041 | ||
1060 | //------- getTabAlignmentString ---------- | 1042 | //------- getTabAlignmentString ---------- |
1061 | // Returns the tabplacement string of the | 1043 | // Returns the tabplacement string of the |
1062 | // tabplacement number on success else | 1044 | // tabplacement number on success else 0. |
1063 | // 0. | ||
1064 | //---------------------------------------- | 1045 | //---------------------------------------- |
1065 | const char *Tab::getTabAlignmentString(int placement) { | 1046 | const char *Tab::getTabAlignmentString(int placement) { |
1066 | for (int i=0; i<anone; i++) { | 1047 | for (int i=0; i<anone; i++) { |
diff --git a/src/Window.cc b/src/Window.cc index bba0d04..3618e32 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -291,12 +291,41 @@ FluxboxWindow::FluxboxWindow(Window w, BScreen *s) { | |||
291 | client.normal_hint_flags & (PPosition|USPosition)) { | 291 | client.normal_hint_flags & (PPosition|USPosition)) { |
292 | setGravityOffsets(); | 292 | setGravityOffsets(); |
293 | 293 | ||
294 | if ((fluxbox->isStartup()) || | 294 | if (! fluxbox->isStartup()) { // is going to be used when position |
295 | if (decorations.tab) { // window is cleanly fixed | ||
296 | int real_x = frame.x; | ||
297 | int real_y = frame.y; | ||
298 | |||
299 | if (screen->getTabPlacement() == Tab::PTop) | ||
300 | real_y -= screen->getTabHeight(); | ||
301 | |||
302 | else if (screen->getTabPlacement() == Tab::PLeft) { | ||
303 | if (screen->isTabRotateVertical()) | ||
304 | real_x -= screen->getTabHeight(); | ||
305 | else | ||
306 | real_x -= screen->getTabWidth(); | ||
307 | } | ||
308 | |||
309 | if (real_x >= 0 && | ||
310 | real_y + frame.y_border >= 0 && | ||
311 | real_x <= (signed) screen->getWidth() && | ||
312 | real_y <= (signed) screen->getHeight()) | ||
313 | place_window = false; | ||
314 | |||
315 | } else if (frame.x >= 0 && // non tab | ||
316 | (signed) (frame.y + frame.y_border) >= 0 && | ||
317 | frame.x <= (signed) screen->getWidth() && | ||
318 | frame.y <= (signed) screen->getHeight()) | ||
319 | place_window = false; | ||
320 | } else | ||
321 | place_window = false; | ||
322 | |||
323 | /* if ((fluxbox->isStartup()) || | ||
295 | (frame.x >= 0 && | 324 | (frame.x >= 0 && |
296 | (signed) (frame.y + frame.y_border) >= 0 && | 325 | (signed) (frame.y + frame.y_border) >= 0 && |
297 | frame.x <= (signed) screen->getWidth() && | 326 | frame.x <= (signed) screen->getWidth() && |
298 | frame.y <= (signed) screen->getHeight())) | 327 | frame.y <= (signed) screen->getHeight())) |
299 | place_window = false; | 328 | place_window = false; */ |
300 | 329 | ||
301 | } | 330 | } |
302 | 331 | ||
@@ -1671,6 +1700,9 @@ void FluxboxWindow::setTab(bool flag) { | |||
1671 | if (flag) { | 1700 | if (flag) { |
1672 | if (!tab) | 1701 | if (!tab) |
1673 | tab = new Tab(this, 0, 0); | 1702 | tab = new Tab(this, 0, 0); |
1703 | tab->focus(); // draws the tab with correct texture | ||
1704 | tab->setPosition(); // set tab windows position | ||
1705 | |||
1674 | } else if (tab) { | 1706 | } else if (tab) { |
1675 | delete tab; | 1707 | delete tab; |
1676 | tab = 0; | 1708 | tab = 0; |
@@ -1846,30 +1878,30 @@ void FluxboxWindow::maximize(unsigned int button) { | |||
1846 | if (decorations.tab && Fluxbox::instance()->useTabs()) { // Want to se the tabs | 1878 | if (decorations.tab && Fluxbox::instance()->useTabs()) { // Want to se the tabs |
1847 | switch(screen->getTabPlacement()) { | 1879 | switch(screen->getTabPlacement()) { |
1848 | case Tab::PTop: | 1880 | case Tab::PTop: |
1849 | dy += Fluxbox::instance()->getTabHeight(); | 1881 | dy += screen->getTabHeight(); |
1850 | dh -= Fluxbox::instance()->getTabHeight() + screen->getBorderWidth(); | 1882 | dh -= screen->getTabHeight() + screen->getBorderWidth(); |
1851 | break; | 1883 | break; |
1852 | case Tab::PLeft: | 1884 | case Tab::PLeft: |
1853 | if (screen->isTabRotateVertical()) { | 1885 | if (screen->isTabRotateVertical()) { |
1854 | dx += Fluxbox::instance()->getTabHeight(); | 1886 | dx += screen->getTabHeight(); |
1855 | dw -= Fluxbox::instance()->getTabHeight(); | 1887 | dw -= screen->getTabHeight(); |
1856 | } else { | 1888 | } else { |
1857 | dx += Fluxbox::instance()->getTabWidth(); | 1889 | dx += screen->getTabWidth(); |
1858 | dw -= Fluxbox::instance()->getTabWidth(); | 1890 | dw -= screen->getTabWidth(); |
1859 | } | 1891 | } |
1860 | break; | 1892 | break; |
1861 | case Tab::PRight: | 1893 | case Tab::PRight: |
1862 | if (screen->isTabRotateVertical()) | 1894 | if (screen->isTabRotateVertical()) |
1863 | dw -= Fluxbox::instance()->getTabHeight(); | 1895 | dw -= screen->getTabHeight(); |
1864 | else | 1896 | else |
1865 | dw -= Fluxbox::instance()->getTabWidth(); | 1897 | dw -= screen->getTabWidth(); |
1866 | break; | 1898 | break; |
1867 | case Tab::PBottom: | 1899 | case Tab::PBottom: |
1868 | dh -= Fluxbox::instance()->getTabHeight() + screen->getBorderWidth(); | 1900 | dh -= screen->getTabHeight() + screen->getBorderWidth(); |
1869 | break; | 1901 | break; |
1870 | default: | 1902 | default: |
1871 | dy += Fluxbox::instance()->getTabHeight(); | 1903 | dy += screen->getTabHeight(); |
1872 | dh -= Fluxbox::instance()->getTabHeight() + screen->getBorderWidth(); | 1904 | dh -= screen->getTabHeight() + screen->getBorderWidth(); |
1873 | break; | 1905 | break; |
1874 | } | 1906 | } |
1875 | } | 1907 | } |
diff --git a/src/Windowmenu.cc b/src/Windowmenu.cc index 159f090..652bd68 100644 --- a/src/Windowmenu.cc +++ b/src/Windowmenu.cc | |||
@@ -136,10 +136,15 @@ Windowmenu::Windowmenu(FluxboxWindow *win) : Basemenu(win->getScreen()) { | |||
136 | #endif // NLS | 136 | #endif // NLS |
137 | "Close"), | 137 | "Close"), |
138 | BScreen::WindowClose); | 138 | BScreen::WindowClose); |
139 | insert(i18n->getMessage( | ||
140 | #ifdef NLS | ||
141 | WindowmenuSet, WindowmenuTab, | ||
142 | #else // !NLS | ||
143 | 0, 0, | ||
144 | #endif // NLS | ||
145 | "Tab"), | ||
146 | BScreen::WindowTab); | ||
139 | 147 | ||
140 | //TODO: nls | ||
141 | insert("Tab", BScreen::WindowTab); | ||
142 | |||
143 | update(); | 148 | update(); |
144 | 149 | ||
145 | setItemEnabled(1, window->hasTitlebar()); | 150 | setItemEnabled(1, window->hasTitlebar()); |
diff --git a/src/fluxbox.cc b/src/fluxbox.cc index b2500e7..61025a2 100644 --- a/src/fluxbox.cc +++ b/src/fluxbox.cc | |||
@@ -1798,32 +1798,6 @@ void Fluxbox::load_rc(void) { | |||
1798 | } else | 1798 | } else |
1799 | resource.tabs = true; | 1799 | resource.tabs = true; |
1800 | 1800 | ||
1801 | if (XrmGetResource(database, "session.tab.width", "Session.Tab.Width", | ||
1802 | &value_type, &value)) { | ||
1803 | if (sscanf(value.addr, "%d", &resource.tabwidth) != 1) | ||
1804 | resource.tabwidth = 64; // default tab width | ||
1805 | else { | ||
1806 | if (resource.tabwidth < 5) // are these values sane? | ||
1807 | resource.tabwidth = 5; | ||
1808 | if (resource.tabwidth > 256) | ||
1809 | resource.tabwidth = 256; | ||
1810 | } | ||
1811 | } else | ||
1812 | resource.tabwidth = 64; // default tab width | ||
1813 | |||
1814 | if (XrmGetResource(database, "session.tab.height", "Session.Tab.Height", | ||
1815 | &value_type, &value)) { | ||
1816 | if (sscanf(value.addr, "%d", &resource.tabheight) != 1) | ||
1817 | resource.tabheight = 16; // default tab height | ||
1818 | else { | ||
1819 | if (resource.tabheight < 5) // are these values sane? | ||
1820 | resource.tabheight = 5; | ||
1821 | if (resource.tabheight > 50) | ||
1822 | resource.tabheight = 50; | ||
1823 | } | ||
1824 | } else | ||
1825 | resource.tabheight = 16; // default tab height | ||
1826 | |||
1827 | if (XrmGetResource(database, "session.colorsPerChannel", | 1801 | if (XrmGetResource(database, "session.colorsPerChannel", |
1828 | "Session.ColorsPerChannel", &value_type, &value)) { | 1802 | "Session.ColorsPerChannel", &value_type, &value)) { |
1829 | if (sscanf(value.addr, "%d", &resource.colors_per_channel) != 1) | 1803 | if (sscanf(value.addr, "%d", &resource.colors_per_channel) != 1) |
@@ -2324,6 +2298,46 @@ void Fluxbox::load_rc(BScreen *screen) { | |||
2324 | } else | 2298 | } else |
2325 | screen->saveOpaqueMove(False); | 2299 | screen->saveOpaqueMove(False); |
2326 | 2300 | ||
2301 | sprintf(name_lookup, "session.screen%d.tab.width", screen_number); | ||
2302 | sprintf(class_lookup, "Session.Screen%d.Tab.Width", screen_number); | ||
2303 | if (XrmGetResource(database, name_lookup, class_lookup, | ||
2304 | &value_type, &value)) { | ||
2305 | unsigned int tmp_val; | ||
2306 | |||
2307 | if (sscanf(value.addr, "%d", &tmp_val) != 1) | ||
2308 | screen->saveTabWidth(64); // default tab width | ||
2309 | else { | ||
2310 | //TODO: should we remove checks for max/min? | ||
2311 | if (tmp_val > 512) | ||
2312 | screen->saveTabWidth(512); | ||
2313 | else if (tmp_val < 5) | ||
2314 | screen->saveTabWidth(5); | ||
2315 | else | ||
2316 | screen->saveTabWidth(tmp_val); | ||
2317 | } | ||
2318 | } else | ||
2319 | screen->saveTabWidth(64); // default tab width | ||
2320 | |||
2321 | sprintf(name_lookup, "session.screen%d.tab.height", screen_number); | ||
2322 | sprintf(class_lookup, "Session.Screen%d.Tab.Height", screen_number); | ||
2323 | if (XrmGetResource(database, name_lookup, class_lookup, | ||
2324 | &value_type, &value)) { | ||
2325 | unsigned int tmp_val; | ||
2326 | |||
2327 | if (sscanf(value.addr, "%d", &tmp_val) != 1) | ||
2328 | screen->saveTabHeight(16); // default tab height | ||
2329 | else { | ||
2330 | //TODO: should we remove checks for max/min? | ||
2331 | if (tmp_val > 50) | ||
2332 | screen->saveTabHeight(50); | ||
2333 | else if (tmp_val < 5) | ||
2334 | screen->saveTabHeight(5); | ||
2335 | else | ||
2336 | screen->saveTabHeight(tmp_val); | ||
2337 | } | ||
2338 | } else | ||
2339 | screen->saveTabHeight(16); // default tab height | ||
2340 | |||
2327 | sprintf(name_lookup, "session.screen%d.tab.placement", screen_number); | 2341 | sprintf(name_lookup, "session.screen%d.tab.placement", screen_number); |
2328 | sprintf(class_lookup, "Session.Screen%d.Tab.Placement", screen_number); | 2342 | sprintf(class_lookup, "Session.Screen%d.Tab.Placement", screen_number); |
2329 | if (XrmGetResource(database, name_lookup, class_lookup, | 2343 | if (XrmGetResource(database, name_lookup, class_lookup, |
diff --git a/src/fluxbox.hh b/src/fluxbox.hh index 95be304..4f74789 100644 --- a/src/fluxbox.hh +++ b/src/fluxbox.hh | |||
@@ -94,7 +94,6 @@ public: | |||
94 | static Fluxbox *instance(int m_argc=0, char **m_argv=0, char *dpy_name=0, char *rc=0); | 94 | static Fluxbox *instance(int m_argc=0, char **m_argv=0, char *dpy_name=0, char *rc=0); |
95 | 95 | ||
96 | inline bool useTabs() const { return resource.tabs; } | 96 | inline bool useTabs() const { return resource.tabs; } |
97 | // inline TabType &getTabType() { return resource.tabtype; } | ||
98 | inline bool useIconBar() const { return resource.iconbar; } | 97 | inline bool useIconBar() const { return resource.iconbar; } |
99 | inline void saveTabs(bool value) { resource.tabs = value; } | 98 | inline void saveTabs(bool value) { resource.tabs = value; } |
100 | inline void saveIconBar(bool value) { resource.iconbar = value; } | 99 | inline void saveIconBar(bool value) { resource.iconbar = value; } |
@@ -144,9 +143,6 @@ public: | |||
144 | { return resource.cache_life; } | 143 | { return resource.cache_life; } |
145 | inline const unsigned long &getCacheMax(void) const | 144 | inline const unsigned long &getCacheMax(void) const |
146 | { return resource.cache_max; } | 145 | { return resource.cache_max; } |
147 | inline const unsigned int &getTabWidth(void) const { return resource.tabwidth; } | ||
148 | inline const unsigned int &getTabHeight(void) const { return resource.tabheight; } | ||
149 | |||
150 | 146 | ||
151 | inline void maskWindowEvents(Window w, FluxboxWindow *bw) | 147 | inline void maskWindowEvents(Window w, FluxboxWindow *bw) |
152 | { masked = w; masked_window = bw; } | 148 | { masked = w; masked_window = bw; } |
@@ -220,8 +216,6 @@ private: | |||
220 | timeval auto_raise_delay; | 216 | timeval auto_raise_delay; |
221 | unsigned long cache_life, cache_max; | 217 | unsigned long cache_life, cache_max; |
222 | bool tabs, iconbar; | 218 | bool tabs, iconbar; |
223 | //TabType tabtype; | ||
224 | unsigned int tabwidth, tabheight; | ||
225 | } resource; | 219 | } resource; |
226 | 220 | ||
227 | struct titlebar_t { | 221 | struct titlebar_t { |