Commit graph

250 commits

Author SHA1 Message Date
Mathias Gumz
ab2eef4937 Add -no-slit and -no-toolbar flags
Sometimes fluxbox is used as a component of a desktop environment (
e.g., the "Lumina Desktop"). It's easier and more stable for this kind
of "users" to disable the toolbar or the slit alltogether. Why not
configure these features out? Because then they would need 2 installations
of fluxbox: One without the slit and the toolbar (and perhaps other
components) and one with them.

This implements feature request #314, at least partially.

This commit also looks bigger than it actually is: I refactored and cleaned
up classes Fluxbox and BScreen.
2015-01-22 16:28:53 +01:00
Mathias Gumz
e2dbdeeb2e Fix segfault on shutdown
There was a problem deep within how the menus were connected and when and
what gets deleted. It was clearly related to a menu which was kind of
global. In order to better understand the code flow I eliminated the
ExtraMenu code: it was used only to get the Remember-Menu into the
Window-Menu. Instead of having a singleton of the Remember-Menu and fight
against the shaky interconnections we just create a new one on demand
and delete when the menu gets deleted. Looks like this fixes the problem.

The menu code needs more love anyway.

Closes #1118
2015-01-21 22:16:19 +01:00
Mathias Gumz
b30438c311 Refactor: bundle xinerama-info together, simpler code
Part of this massive looking but simple rather simple change is a the way we
check for active Xinerama: XineramaIsActive() was used before. The docs for
XineramaQueryScreens() state that

    XineramaQueryScreens() returns NULL and sets number to
    0 if Xinerama is not active.

Sold.
2015-01-16 08:45:11 +01:00
Mathias Gumz
6d5781ce71 Refactor: move some menu-creation functions to MenuCreator
Another patch to trim down the code that needs to be part of BScreen
2015-01-16 08:39:05 +01:00
Mathias Gumz
b495878065 Reduce number of allocations for menu creation
Every time either the Slit menu or the Toolbar menu were added to the
root menu, the whole root menu was (re)created from scratch. Now we
create and remove only the menus needed.

Side effect: the position of these menus is now at the end of the root
menu and not somewhere in between. If users complaint, I' ll think about
it.
2015-01-16 08:36:49 +01:00
Mathias Gumz
bd9afcafb9 Refactor: split out menu generation from BScreen
Again, it's easier to read the code when the whole menu-generation is out of
the way.
2015-01-15 18:49:45 +01:00
Lajos Koszti
7b6dc2ad72 Allow percentage values for some Window commands 2012-04-06 14:11:16 +02:00
Pavel Labath
7525ca9f77 Remove all trace of Observers and Subjects
this marks the completion of the transition to FbTk::Signal
2011-05-10 13:00:46 +02:00
Pavel Labath
79d526b968 Convert Screen::reconfigureSig to FbTk::Signal 2011-05-10 13:00:46 +02:00
Pavel Labath
0775350fee Last round of simplification of Signal/Slot classes
- merged all the common stuff from 0,1,2,3 argument versions into one common base class
- removed ReturnType template parameter as it was instantiated with "void" everywhere and the
  current ignores the return value of the callbacks anyway
2011-05-10 13:00:45 +02:00
Pavel Labath
f7d7dfd2a8 Convert FbTk::Theme::reconfigSig and friends to the new Signal system
I removed the const versions of reconfigSig() in the process since FbTk::Signal has no const
methods anyway.
2011-05-10 13:00:45 +02:00
Mathias Gumz
be90145227 bugfix: do not warp workspaces with only one workspace 2011-04-25 11:33:20 +02:00
Mathias Gumz
745fb8e71c removed useless code 2011-03-23 18:41:48 +01:00
Mathias Gumz
767afd32f3 prepare BScreen::XineramaHeadInfo to be 'RectangleLike' 2011-03-19 15:00:34 +01:00
Mathias Gumz
81b240e976 compile fix for clang, forward declaration of FocusControl was not enough 2011-03-18 11:01:08 +01:00
Mathias Gumz
9616a676d8 renamed FbTk::XLayer to FbTk::Layer and FbTk::XLayerItem to FbTk::LayerItem 2011-02-23 22:49:27 +01:00
Mathias Gumz
ffd5f28072 removed dead code 2010-09-09 23:23:52 +02:00
Mathias Gumz
690d926ac4 introduced FbTk::BidiString
a 'BidiString' holds both the logical content and the visual reordered
version of the content of a string. this helps to reduce the number of
calls to reorder the string before drawing it (as introduced in the patch
from Ken Bloom) and to be more consistent in menus and textboxes (drawing
cursors and underlining text).
2010-09-08 20:17:21 +02:00
Mark Tiefenbruck
5b07791ed4 merge menuDelay and menuDelayClose options 2008-10-12 21:55:03 -07:00
Mark Tiefenbruck
c033c201c4 remove menu modes 2008-10-04 19:49:28 -07:00
Mark Tiefenbruck
86a072e7fd remove follow models 2008-10-04 19:30:19 -07:00
Mark Tiefenbruck
e1eb5e225b remove line style resources from init file 2008-10-04 19:08:50 -07:00
Mark Tiefenbruck
ab25696328 remove rootcommand from init file 2008-10-04 18:49:00 -07:00
Henrik Kinnunen
9aee5b80cb Changed resize signal in BScreen to use the new signal system 2008-09-28 18:13:30 +02:00
Henrik Kinnunen
2fcc0fd9e7 Changed workspace area signal to use the new signal system 2008-09-28 16:00:48 +02:00
Henrik Kinnunen
f2c8868724 Merge branch 'master' of fluxbox@git.fluxbox.org:fluxbox
Conflicts:

	ChangeLog
2008-09-28 10:53:16 +02:00
Henrik Kinnunen
bcf37890b6 Change focused signal to use the new signal system 2008-09-28 10:46:49 +02:00
Mark Tiefenbruck
04a1d2a83b don't let KeyRelease events propagate to windows 2008-09-28 01:26:21 -07:00
Henrik Kinnunen
ed53f3c623 Changed icon list signal in BScreen to use the new signal system 2008-09-21 20:45:01 +02:00
Henrik Kinnunen
52e22a0304 Changed client list signal in BScreen to use the new signal system 2008-09-21 19:32:40 +02:00
Henrik Kinnunen
d05804e666 Changed background changed signal in BScreen to use the new signal system 2008-09-21 16:12:36 +02:00
Henrik Kinnunen
71674739ec Changed workspace names signal in BScreen to use the new signal system 2008-09-21 15:25:47 +02:00
Henrik Kinnunen
86819abab9 Changed current workspace signal in BScreen to use the new signal system 2008-09-21 13:44:48 +02:00
Henrik Kinnunen
2f4db57898 Changed workspace count signal in BScreen to use the new signal system. 2008-09-18 22:27:16 +02:00
Mark Tiefenbruck
de8275f688 fix some default values 2008-09-11 15:48:46 -07:00
Mark Tiefenbruck
6b391c3bea update workspace names atoms/resources when adding a new workspace
also removed unnecessary items from default init file
2008-09-08 18:50:25 -04:00
Mark Tiefenbruck
84c87a86f9 remove option to disable decorations on transient windows 2008-08-27 13:59:24 -04:00
Mark Tiefenbruck
e5c61a7279 move some frame size calculations to FbWinFrame 2008-08-15 04:24:03 -07:00
Mark Tiefenbruck
c492daf2d9 remove dithering code 2008-06-26 12:41:43 -07:00
Mark Tiefenbruck
1a54fbc67d move default window menu to ~/.fluxbox/windowmenu 2008-06-19 20:48:26 -07:00
Mark Tiefenbruck
93b0c5322a refactor menu reloading, added FbTk::AutoReloadHelper 2008-05-11 17:22:40 -07:00
Mark Tiefenbruck
85d8ac7549 more useless code 2008-05-11 09:08:14 -07:00
Henrik Kinnunen
c31638038a Fixed so tooltip window in the iconbar when the title changes. 2008-05-09 19:39:02 +02:00
Matteo Galiazzo
4a3be045b2 add tooltips for iconbar buttons when title is too long to fit 2008-05-05 05:05:52 -07:00
Henrik Kinnunen
cd128d7a3e removed goto 2008-02-10 18:16:50 +01:00
Tomas Janousek
b405d36151 Move windows out of inactive heads upon layout change.
Signed-off-by: Tomas Janousek <tomi@nomi.cz>
2008-01-27 15:01:14 +01:00
Tomas Janousek
041eacdfd5 Reload the Xinerama layout on RandR signal.
The m_head_areas became a vector, because we need to dynamically change its
size. The functions manipulating struts (which refer to a particular head)
now check whether the head still exists.

Signed-off-by: Tomas Janousek <tomi@nomi.cz>
2008-01-27 15:01:14 +01:00
Mark Tiefenbruck
db4ec8cf20 move position and geometry windows into their own class 2008-01-19 04:00:46 -08:00
Mark Tiefenbruck
f66d446a94 move some stuff from Fluxbox to BScreen 2008-01-11 22:36:38 -08:00
Mark Tiefenbruck
1f01d84c08 split WinButtonTheme into multiple themes 2008-01-08 00:50:58 -08:00