Commit graph

84 commits

Author SHA1 Message Date
Mario J. Rugiero
2275e1e6e4 doSubmenu function in menutest.cc avoids copying labelstr by using a const reference. 2015-05-01 10:46:21 +02:00
Mathias Gumz
d8c11d0852 Fix 'make check' 2015-01-05 21:38:14 +01:00
Mathias Gumz
a8dfb56739 Remove reference to src/tests/testSignal 2015-01-03 14:39:59 +01:00
Mathias Gumz
e105de7d46 merge Sami Kerola's new build-system 2014-04-11 17:42:40 +02:00
Mathias Gumz
43bdf499d5 Fix race condition on shutdown
This commit fixes primarily a race condition that occurs when xinit(1) shuts
down: by not acting properly fluxbox gets caught in an infinite loop. It
caused bug #1100.

xinit(1) sends a SIGHUP signal to all processes. fluxbox tries to shutdown
itself properly by shutting down workspaces and screens. While doing that, the
Xserver might be gone already. Additionally, fluxbox used to restart() itself
on SIGHUP, which is clearly not the right thing to do when xinit(1) is about
to end the session.

So, fluxbox does this:

* handling SIGHUP now shuts down fluxbox without clearing workspaces and
  screens.

* A 2 second alarm() is triggered in Fluxbox::shutdown() as a last resort

* XSetIOErrorHandler() is used to recognize the disconnect from the xserver.

* SIGUSR1 is for restarting fluxbox, SIGUSR2 for reloading the config

* FbTk/SignalHandler.cc/hh is gone; this unused abstraction served currently
  no real purpose. Signal handling is now done in main.cc

* Unrelated to the issue itself src/main.cc was trimmed down quite a bit and
  the code (responsible for handling the command line interface) was moved to
  src/cli*
2014-02-18 19:34:35 +01:00
Mathias Gumz
f464f24eb3 fix detection of $HOME folder
usually $HOME is set when fluxbox runs. in some rare scenarios (eg., fuzzying
binaries to detect bugs) one could launch fluxbox by using 'env -i' and thus
eliminating $HOME from the environment. to prevent crashes fluxbox uses now
'getpwuid()' when $HOME is not set to detect the home folder.
2013-06-29 08:39:02 +02:00
Sami Kerola
7541054b29 build-sys: move to non-recursive build
This rather large change will attempts to make 'make' to work better.
See excellent paper 'Recursive Make Considered Harmful' by Peter Miller
for further explanation why several make files is worse than one for
whole project.

Note.  The tests are build with 'make check' rather than defining TEST.

Reference: http://miller.emu.id.au/pmiller/books/rmch/
Reference: http://karelzak.blogspot.co.uk/2013/02/non-recursive-automake.html
2013-05-26 10:38:11 +01:00
Sami Kerola
9e5eddfc3d build-sys: use pkg-config to locate dependencies
This commit alters XRANDR (X Resize And Rotate) extension dependency,
which is expected to have at least version 1.4.  Earlier old versions of
xrandr were supported, at least to some extent.
2013-05-26 10:38:10 +01:00
Sami Kerola
47b9786533 build-sys: use AC_USE_SYSTEM_EXTENSIONS
The earlier _GNU_SOURCE definitions possibly did not take effect
everywhere where it was intended.
2013-05-26 10:38:10 +01:00
Sami Kerola
73b7958770 build-sys: include config.h to all files using automake
Do not try to be too smart which compilations need config.h, as most of
them will simply because of the config.h has information about system
capabilities.
2013-05-26 10:38:10 +01:00
Sami Kerola
f12e149baf automake: use AM_CPPFLAGS rather than INCLUDES
The INCLUDES macro deprecated in favour of AM_CPPFLAGS.

References: http://www.gnu.org/software/automake/manual/html_node/Program-Variables.html
2013-01-03 08:17:27 +01:00
Mathias Gumz
b4534e0f28 Rewrite of FbTk::TextureRender
* much more readable and easier to read code
* smaller code
* reduced binary size due to removed big lookup-table for square root
* simple 'optimizations (lookup tables, packing of data), nothing too fancy
2012-11-08 11:02:28 +01:00
Mathias Gumz
7b6ab828c7 Improved vertical alignment of text in FbTk::TextButton
The old formula for vertical align text inside FbTk::TextButton ('height/2 +
font_ascent/2 - 1') produced not always good looking results, escpecially
when different fonts are involved (eg, ClockTool and WorkspaceName have
different fonts and font-sizes).

'(height - font_ascent) / 2 - 1' produces better results.

Additional changes:

* added ASCII-Art to document the involved entities when calculating the
  baseline
* rewritten tests/testFont.cc to accept multiples texts and multiple
  fonts
* removed some internal parts of FbTk::Font from the public interface
2012-10-03 10:27:16 +02:00
Mathias Gumz
541c8c407b changed timing functions to use a monotonic increasing clock
gettimeofday() is subject to be changed on daylight-saving or to ntp-related
(think leap-seconds). even worse, it is subject to be changed BACK in time. this
is hard to fix correctly (see commit 45726d3016 and bug #3560509). it is
irrelevant for timers to know the nano-seconds since the epoch anyways.
2012-08-28 10:51:55 +02:00
Lajos Koszti
7b6dc2ad72 Allow percentage values for some Window commands 2012-04-06 14:11:16 +02:00
Ryan Pavlik
f859e78cb2 Exceptions should be caught by reference.
Found using cppcheck.
2012-01-04 07:51:35 +01:00
Pavel Labath
ad0951ca53 Remove Observers from testSignal.cc 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
86c9b100f3 Fix VPATH builds 2011-04-18 08:50:44 +02:00
Pavel Labath
8b6943ab1c Fix a couple of "comparison between signed and unsigned" warnings 2011-04-15 21:36:04 +02:00
Mathias Gumz
a798e0e0ff added RectangleUtil::overlapRectangles() + test cases 2011-03-19 14:56:45 +01:00
Mathias Gumz
bcae4e257d added tests/testRectangleUtil.cc 2011-03-18 17:57:34 +01:00
Mathias Gumz
253f13d46e some love to src/tests, use automake to use the same build environment as the rest of fluxbox 2011-03-18 15:51:17 +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
92deeba2a0 Render rectangles instead of squares to test TextureRender.cc 2011-02-21 20:49:10 +01:00
Mathias Gumz
78b09ee932 updated 'texturetest.cc' to work with current API 2010-09-21 00:05:15 +02:00
Henrik Kinnunen
43837f82e1 Added simple stress test in python 2010-03-20 00:29:39 +01:00
Henrik Kinnunen
ceff86b794 Added SelectArg and MemFunSelectArg*
The MemFunSelectArg* functions can be used to select
a specific argument from a signal. For example this would
select the string argument as argument to the callback:

Signal<void, int, float, string> signal;
signal.connect(MemFunSelectArg2(obj, &Object::takesOneStringArg));
signal.emit(10, 3.14, "hello");

...

void Object::takesOneStringArg(const string& value) {
...
}
2010-03-19 02:23:41 +01:00
Henrik Kinnunen
02bb93590c Added FbTk::relaySignal, which relays new signals to old Subject type signals. 2010-03-18 19:35:19 +01:00
Henrik Kinnunen
31a458f365 Fixed so testDemandAttention compiles 2010-03-18 12:08:03 +01:00
Henrik Kinnunen
0504de454a Added MemFunIgnoreArgs which ignores aditional arguments.
For example connecting a function that takes two arguments
to a signal that emits three arguments:
struct Functor {
    void show(int a, int b);
};
Functor f;
Signal<void, int, int, int> s3;
s3.connect(MemFunIgnoreArgs(f, &Functor::show));
2010-03-18 10:45:33 +01:00
Henrik Kinnunen
e4d4717703 Added new Signal/Slot system in FbTk
This is suppose to replace the obsolete Subject/Observer classes.
See the src/tests/testSignals.cc for basic usage.
2008-09-18 22:24:35 +02:00
Mark Tiefenbruck
9c105111d2 remove old svn $Id$ tags 2008-01-03 17:34:12 -08:00
fluxgen
df022d0fae added fullscreen test 2007-05-20 12:39:11 +00:00
fluxgen
cf9c58bb0b added title test for _NET_WM_NAME and WM_NAME memory leaks 2007-05-19 11:18:44 +00:00
mathias
a3c5fd6000 cosmetic patch from slava again 2006-11-07 19:12:42 +00:00
mathias
e5e76e7761 Cosmetic patch from Slava Semushin 2006-10-30 19:31:15 +00:00
fluxgen
e27dfd97bc added include path 2006-09-18 15:17:12 +00:00
fluxgen
36f5a46fd7 added test program for _NET_WM_STATE_DEMANDS_ATTENTION 2006-05-13 15:01:04 +00:00
fluxgen
d812faffb4 test program for _NET_WM_STATE_DEMANDS_ATTENTION 2006-05-13 15:00:45 +00:00
simonb
520f552be7 handle utf-8 strings properly.
use utf8 internally
2006-05-07 03:41:27 +00:00
simonb
af74a22845 rotated fonts, buttons, containers. Used for tabs for now 2006-03-26 04:02:30 +00:00
mathias
ae05ad9a01 updated copyright info 2006-02-16 06:53:05 +00:00
fluxgen
e621769134 testing replaceString 2005-11-22 21:58:25 +00:00
mathias
ef76b45ab1 - Usage of xft-fonts is prefered, except a font-description starts with '-'
- Removed "antialias"-option completly, to enable/disable "antialias"
  use either  <fontname>:antialias=<bool> in the style or use
  Xft.antialias: <bool> in your .Xdefaults
- Added new styleresources: 
    *.font.effect: <halo|shadow>
    *.font.shadow.x : <int>       - shadow x offset
    *.font.shadow.y : <int>       - shadow y offset
    *.font.shadow.color : <color> - color of shadow
    *.font.halo.color : <color>   - color of halo
- Removed 'shadow' and 'halo' options from fontdefinitions:
    !! Style authors have to update their styles !!
- Simplified XmbFontImp to not try all possible fonts to match locale
- Style authors may specify multiple fonts:
    <font1>|<font2>|<font3>
  if loading of font1 fails, fluxbox probes <font2>, etc. The last font is
  "fixed". Hints for style authors:
    - if xft tries to load a font it will _ALWAYS_ return a valid font,
      it doesnt have to look like the one you want to have, read more
      about it: http://fontconfig.org/fontconfig-user.html
    - export XFT_DEBUG=1  before running fluxbox helps to see
      which fonts are picked.
  eg:
      *.font: Verdana,Arial-12:antialias=true|-artwiz-snap-*-
      if fluxbox is compiled with xft this will NEVER try to
      load "-artwiz-snap-*-" since xft gives for sure a font,
      most likely Verdana or Arial but noone knows. So, if
      fluxbox has no xft support the first fontpattern fails
      and fluxbox tries the next one, which might be successful.
      if everything fails, it will use "fixed"
- Added caching of fonts, fonts are only loaded once.
- Fixed #1090902 (slow utf8 start)
2005-06-03 07:25:48 +00:00
mathias
6976bf4de7 copyright date 2005-01-24 18:43:01 +00:00
fluxgen
f54125bfb2 minor stuff 2005-01-15 13:16:05 +00:00
fluxgen
676c89ab59 fixed some issues and added testMenu target 2005-01-15 13:15:49 +00:00
fluxgen
f947c73420 testing menu theme and parser 2005-01-15 13:14:13 +00:00
mathias
993c17cf2e svn propset svn:keywords "Id" 2004-11-19 11:37:27 +00:00