Kim Woelders
8cf668e9c0
dialogs: Fix layout in window group selection
...
ASAN complains, bug might cause segv.
Broken by 3c42724f96
(in v1.0.25).
Reported by Milan Maljković.
2023-09-21 14:33:08 +02:00
Kim Woelders
6b9d2a6e34
dialogs: Remove extra separator in Miscellaneous Settings
...
Reported by Milan Maljković.
2023-09-21 14:33:08 +02:00
Kim Woelders
4f617c77bf
text: Converge faster in TextFit functions
...
"Fitting" very long strings (replacing center piece of text with
ellipsis) could be very slow.
This should speed things up considerably by skipping a lot of
iterations.
2023-09-21 14:33:08 +02:00
Kim Woelders
f7e60a5e29
text: Mostly trivial changes
2023-09-21 14:33:08 +02:00
Kim Woelders
9a1af26614
text: Cosmetics
...
Eliminate mlen.
2023-09-21 14:33:08 +02:00
Kim Woelders
051a418261
text: Fix calculating long multibyte string length (codepoints)
...
Fixes very long window titles sometimes spilling over into border
buttons.
Reported by Milan Maljković.
This fix causes slow rendering of very long window titles, this will be
dealt with shortly.
2023-09-21 14:33:03 +02:00
Kim Woelders
edc06f4950
text: Drop unused fsize argument in Text functions
2023-09-21 14:32:11 +02:00
Kim Woelders
41ae0ec99e
ipc: Fix potential segv
...
Also increase intermediate ipc buffer size.
2023-09-21 14:31:56 +02:00
Kim Woelders
de581414db
menus: Limit menu item text width
...
E.g. when a window title is rediculously long, the window list could
become rediculously wide.
The width is now rather arbitrarily limited to a third of the screen
width.
Reported by Milan Maljković.
2023-09-20 19:23:05 +02:00
Kim Woelders
2fdf689d90
ewins: Fix gravity related placement issue
...
Attempt to fix placement issues (walking window) for windows with
non-NorthWest gravity when withdrawn/shown.
2023-09-11 20:41:38 +02:00
Kim Woelders
50356c8b12
Revert "Optionally ignore gravity from WM_NORMAL_HINTS"
...
Doesn't fix the problem.
This reverts commit c6c5070311
.
2023-09-11 20:40:47 +02:00
Kim Woelders
2e7e3f89d5
tooltips: Fix initially missing root tooltips
...
If enabled, they would initially not appear until some border or theme
element was entered and left.
2023-09-10 17:31:17 +02:00
Kim Woelders
c6c5070311
Optionally ignore gravity from WM_NORMAL_HINTS
2023-09-10 16:48:15 +02:00
Kim Woelders
230ee4d9e9
Update non-active desk pagers when background is changed
...
#11
2023-08-12 19:49:47 +02:00
Kim Woelders
bed85d0f42
Remove some pseudotransparency leftovers
2023-08-12 19:49:47 +02:00
Kim Woelders
b26c137bc3
iclass: Drop image border adjustment
...
In the switch from imlib to imlib2 (a couple of decades ago) an
adjustment of image borders was introduced to accommodate for a
difference between the old and new imlibs.
Without this adjustment a few themes have incorrectly rendered elements
(unintended window border fading, opaque pager area highligt frame, more?).
It turns out that the origin of the problem is in the scaling code of
imlib2, and will be fixed in imlib2 (most likely v1.12.0).
2023-08-09 19:53:28 +02:00
Kim Woelders
29f3494847
config: Drop -include when preparsing
...
epp appears to ignore it.
2023-07-28 19:54:48 +02:00
Kim Woelders
e436edb5c9
Fix a couple of bugs in new quoting/comment handling
2023-06-27 06:12:33 +02:00
Kim Woelders
30bdaa84cb
bindings: Handle quoting in AclassConfigLineParse()
...
Commands in bindings can now use quoting.
Suggested by Dennis Nezic.
2023-06-26 19:52:23 +02:00
Kim Woelders
050d310ce6
ipc: Avoid potential crash in AclassConfigParseIpc()
...
Also, let AclassConfigLineParse() deal with comments.
2023-06-26 19:52:23 +02:00
Kim Woelders
890173a5cf
Move some string handling functions around
...
To a maybe sligthly more logical location.
2023-06-26 19:52:15 +02:00
Kim Woelders
4015600f26
events: Fetch events also when blocked
...
Fetch but don't process, just queue up.
Should make no difference for now but may be needed later.
2023-06-14 17:39:34 +02:00
Kim Woelders
54845aae1c
events: Separate event fetching and processing
2023-06-14 17:39:34 +02:00
Kim Woelders
bccc3fc431
events: Change some variable names
2023-06-14 17:39:34 +02:00
Kim Woelders
07bdcfdb6b
GSOD: Ungrab server before opening new connection
...
Going here while having grabbed the server would cause a deadlock when
opening the new connection.
2023-06-14 17:35:29 +02:00
Kim Woelders
16ca9c9ef4
startup: Only repaint if animating
...
Also
- Insert delay to "show" progress
- End at 100%
2023-03-20 13:57:54 +01:00
Kim Woelders
f384e2adc0
desks: Prevent nested desk switches
...
Using the mouse wheel (maybe also the keyboard?) it was possible to
start an animated desk switch while one was already in progress.
This could cause some incorrect state and window placement.
Also add a few debug messages.
2023-03-20 13:50:45 +01:00
Kim Woelders
52c127d896
Revert "ewins: Remove redundant container window move"
...
This move is not redundant. If removed the container window may not be
correctly placed when calculating shape.
This reverts commit 8a3c11c449
.
2023-03-03 17:00:57 +01:00
Kim Woelders
19ed4327f1
menus: Expose option to show/hide menu icons in configuration dialog
...
#9
2023-03-01 09:09:14 +01:00
Kim Woelders
32b0fb591e
Add missing include
2023-02-06 17:32:34 +01:00
Kim Woelders
1cef4a1044
cursors: Rework cursor creation
...
In non-ancient mode (i.e. using XRenderCreateCursor) this should be
somewhat more efficient.
2022-12-28 09:42:13 +01:00
Kim Woelders
8f64686175
cursors: Mostly cosmetic function name changes
2022-12-28 09:42:13 +01:00
Kim Woelders
d9549a75e8
cursors: Mostly cosmetic adjustments around fore/background colors
...
Properly propagate the foreground/background color values and swap them
where applied (due to inverted cursor image bitmaps).
Should make things a bit less confusing.
2022-12-28 09:42:01 +01:00
Kim Woelders
304e66645c
extinitwin: Move null cursor definition to separate function
...
Should make it a bit more clear what goes on here.
2022-12-25 11:57:18 +01:00
Kim Woelders
5fe3253e3a
eimage: Split EImageDefineCursor
2022-12-25 11:55:17 +01:00
Kim Woelders
53b82bbd26
Some include tweaks
2022-12-21 20:05:56 +01:00
Kim Woelders
b41a6a9a53
pagers: Avoid some overhead
2022-12-11 20:19:09 +01:00
Kim Woelders
5a4f56e1e2
Forgot some 2022
2022-12-11 20:17:26 +01:00
Kim Woelders
ff293d12d2
ewins: Tweak spurious MapRequest handling
...
Some clients produce multiple MapRequests (presumably by doing
multiple XMapWindow()s early, which hits case "B").
Not sure when case "A" is hit, maybe in connection with incorrect
iconification or withdrawal and re-map.
Now we only reparent (and move) if not already reparented, and place
correcly in the no-container case (which most likely is to do nothing
as the window probably already is parented/placed correctly).
Also always print a message to the console on spurious MapRequests.
This fixes client window placement within the frame in the no-container
case with some clients.
2022-12-11 16:21:42 +01:00
Kim Woelders
8a3c11c449
ewins: Remove redundant container window move
...
.. I think..
If for some reason this move is needed, it should probably be done in
EwinBorderCalcSizes() where the other frame windows (border parts) are
moved/sized.
Normally the container window placement is performed by
Ewin(Move)Resize().
2022-12-11 16:21:17 +01:00
Kim Woelders
4cbd7179b2
memory.c: Consistently use EMALLOC()
2022-12-10 15:02:59 +01:00
Kim Woelders
ee2da6a545
focus: Keep focus when un-fullscreened
...
With pointer focus modes, when un-fullscreening a focused window, focus
was lost if the pointer landed in another window.
#5
2022-12-09 16:11:46 +01:00
Kim Woelders
6a0c30e77f
timers: Properly fix timer lockup issue
...
Adding timers from within timer callback functions could cause lockups
and memory leaks.
2022-10-30 10:28:14 +01:00
Kim Woelders
286a815b92
timers: Fix potential lockup when switching desks fast
...
Not sure exactly why - probably some nested timer calls - but this seems
to fix the problem.
2022-10-28 22:30:34 +02:00
Kim Woelders
1e757064a9
Handle quoting in StrlistDecodeEscaped()
...
IPC commands and exec's in menu files can now use quoting.
2022-10-05 20:17:44 +02:00
Kim Woelders
6c1fbaaedd
Fix some clang-analyzer complaints
2022-09-22 07:35:30 +02:00
Kim Woelders
dee8d4f369
edge: Prevent pointer click and motion events propagating to root
...
Avoids activating desk flips, root menus, and root window tooltips when
clicking on or moving over the edge windows.
2022-07-23 13:44:51 +02:00
Kim Woelders
032e0b3896
edge: Refactor window creation
2022-07-23 13:44:51 +02:00
Kim Woelders
ee3355669c
edge: Cosmetics
2022-07-23 13:44:51 +02:00
Kim Woelders
3b07d3f12a
events: Discard all but last reparent event in queue for window
...
Processing obsolete reparent events may cause trouble.
However, this is probably no guarantee that all obsolete reparent events
are discarded.
2022-07-02 22:58:02 +02:00
Kim Woelders
504b75bc70
events: Trivial cleanup
2022-07-02 22:57:53 +02:00
Kim Woelders
6369dfa7dd
menus: Fix potential crash
...
When requesting to show a menu already shown it would be hidden before
being shown again, which could cause a crash due to incorrect processing
of reparent events.
Now we just ignore requests to show a menu that is aleady shown, which
bypasses the event processing issue and is reasonable anyway.
2022-07-02 22:57:53 +02:00
Kim Woelders
5e7c2a034a
arrange: Keep upper left corner on screen when centering window
2022-06-13 07:58:27 +02:00
Kim Woelders
d5724bd6cc
ipc: Improve help for win_op target specification
2022-06-11 20:36:14 +02:00
Kim Woelders
597fcf7be7
xprop: Drop setting default desktop names in ex_netwm_desk_names_set()
...
Should be set up elsewhere.
2022-06-10 20:52:58 +02:00
Kim Woelders
85cdfe857c
desktops: Enable setting desktop names
2022-06-10 20:52:31 +02:00
Kim Woelders
28c1a5fd05
desktops: Introduce DesksGetNames()
2022-06-10 20:49:38 +02:00
Kim Woelders
64e2ef8741
desktops: Cosmetics
2022-06-10 20:49:38 +02:00
Kim Woelders
ed4c748a91
Introduce HintsSetDesktopNames()
2022-06-10 20:49:38 +02:00
Kim Woelders
1f2700aae6
Introduce EobjSetName()
2022-06-10 20:49:38 +02:00
Kim Woelders
02ddb6e80b
iclass: Remove unneeded header
2022-05-28 08:58:53 +02:00
Kim Woelders
6c784dc73b
iclass: Make active state more visible in fallback icon class
2022-05-28 07:53:02 +02:00
Kim Woelders
474b5161ad
ewins: Fix ewin area calculation
...
Checking EwinIsOnScreen() was meant to be an optimization but may cause
inconsistencies if ewin is slightly off-screen.
2022-05-27 17:15:17 +02:00
Kim Woelders
7963834b98
GSOD: Fix repaint after quit by button press
...
Also add cosmetic delay.
2022-05-26 05:53:15 +02:00
Kim Woelders
343137f1b5
GSOD: Some refactoring
2022-05-26 05:50:58 +02:00
Kim Woelders
c35690b4a4
containers: Fix creating new iconboxes
...
When creating a new iconbox without giving a name (eesh ibox new) as
done by the desktop menu this would not work if an iconbox named _IB_<N>
(<N> being the number of containers) already existed.
2022-05-24 07:19:57 +02:00
Kim Woelders
556fadb3c1
containers: Cosmetics
2022-05-24 06:46:10 +02:00
Kim Woelders
8878d862fd
background: Discard broken backgrounds when opening configuration dialog
2022-05-13 15:35:10 +02:00
Kim Woelders
f640a09346
moveresize: Fix screen edge resistance for grouped windows
...
Previously a window group being moved would not be affected by the
screen edge resistance.
Now the dragged window is subject to the screen edge resistance.
2022-05-09 15:49:46 +02:00
Kim Woelders
ebd3b74f49
moveresize: Move SnapEwin() to where it is used.
2022-05-09 15:49:46 +02:00
Kim Woelders
a68018d795
moveresize: Enable configuring edge restistance in dialog
2022-05-09 14:05:24 +02:00
Kim Woelders
f8d7cb8c00
arrange: Introduce screen struts
...
Can be used to restrict area where windows are normally placed.
Works like struts set by clients with _NET_WM_STRUT.
Sugested by Milan Maljković.
2022-05-03 19:20:19 +02:00
Kim Woelders
398622f986
arrange: Refactor SnapEwin()
2022-05-03 19:20:19 +02:00
Kim Woelders
de008aa637
session: Fix broken session id handling
...
Also fixes a minor memory leak.
2022-05-01 20:19:43 +02:00
Kim Woelders
c350cbcf4b
pinning: Remember across restart
2022-05-01 20:19:43 +02:00
Kim Woelders
5938226ffd
main: Don't start edox on first startup
...
The edox documentaion is rather dated - time to drop it.
2022-05-01 20:19:43 +02:00
Kim Woelders
cf5927deb8
Clamp window position on move
...
In non-compositing mode the x/y coordinate limts are [-32768; 32767] as
should be expected. If moving beyond these values the coordinates are
just set modulo 2^16 (like in a signed 16 bit integer) and most likely
this isn't noticed anywhere.
In compositing mode the coordinates apperently must be clamped some
more, but it is not clear why or where the limit is.
The problem manifests itself in that a window moved "too far" seems to
have disappeared when moving it back on screen, possibly because the
name pixmap is invalidated.
Shading/unshading the window makes it re-appear.
The problem can be seen when dragging a window far off a (small) pager.
2022-04-30 20:26:41 +02:00
Kim Woelders
dc5db9e4a1
CM: Adjust shadowing conditions some more
...
Re-enable sharp shadows on shaped windows.
Should be ok now that sharp shadowing shaped windows has been fixed.
2022-04-29 20:01:17 +02:00
Kim Woelders
5b071a0e26
CM: Fix sharp shadows when window is shaped
...
This once did work. I wonder when it broke.
2022-04-29 19:53:08 +02:00
Kim Woelders
f07b6a74e5
ipc: Add custom format window_list
2022-04-28 19:26:58 +02:00
Kim Woelders
546c1bb2df
dialogs: Text cleanups
...
In general only capitalize first word.
Capitalization of words was somewhat inconsistent throughout the
dialogs.
2022-04-24 12:41:25 +02:00
Kim Woelders
a4cd43578d
dialogs: Fixup after recent layout changes
2022-04-24 12:22:58 +02:00
Kim Woelders
5f23c8fce9
arrange: Fix C++ build
2022-04-24 11:39:50 +02:00
Kim Woelders
3ad01fdda7
focus: IPC help tweaks
...
- Mention next, prev, and focus mode ?
- Some wording and format changes
2022-04-22 17:00:05 +02:00
Kim Woelders
6d6d1c8dc4
ipc: Debug tweaks
2022-04-22 13:23:32 +02:00
Kim Woelders
a09b13260a
dialogs: Drop re-centering combined dialog on item change
...
Gives maybe a bit more smooth appearance.
Allows it to be moved away and not re-centered on change.
2022-04-22 08:02:23 +02:00
Kim Woelders
3c42724f96
Dialog layout adjustments
...
In general left-align text labels.
2022-04-22 07:41:58 +02:00
Kim Woelders
8090324299
moveresize: Refactor some conditions for readability
2022-04-22 07:35:28 +02:00
Kim Woelders
a5228ad9e0
moveresize: Remove long time unused constrained move code
...
Not active because doMoveConstrained() has been disabled for ages.
Was effectively equivalent to setting misc.snap.screen_snap_dist to
large value.
2022-04-22 07:35:20 +02:00
Kim Woelders
04f040199c
moveresize: Remove long time unused swapmove code
...
Not active because doSwapMove() has been disabled for ages.
Not resurrecting, doesn't seem to work properly.
2022-04-22 07:35:00 +02:00
Kim Woelders
e789b1740e
moveresize: Remove disabled nogroup move functions
...
Nogroup operations have been implemented by other means.
2022-04-21 09:08:47 +02:00
Kim Woelders
5e7ca9c93e
containers: Configuration saving tweaks - fixup
...
Forgot to change file name buffer, container configuration changes
could get lost.
2022-04-19 18:11:21 +02:00
Kim Woelders
9cfe1e2577
Fix some problems with resize-by-keyboard
...
If using the pointer while in resize-by-keyboard mode one could run into
a couple of issues, among others that the window outline frame might not
be taken down.
To fix this the pointer is now also grabbed in resize-by-keyboard mode
but pointer events ignored.
2022-04-19 17:05:55 +02:00
Kim Woelders
0eb986a943
ipc: win_op help updates
2022-04-18 20:41:11 +02:00
Kim Woelders
34f007d088
Add window option to pass-through pointer events
2022-04-16 11:26:17 +02:00
Kim Woelders
edd9216610
arrange: Disable ARRANGE_BY_POSITION mode
...
Rather perculiar thing..
2022-04-04 18:35:45 +02:00
Kim Woelders
684e911c9e
arrange: Simplify/speed up by using qsort(), cosmetics
2022-04-04 18:35:45 +02:00
Kim Woelders
b3e5758442
arrange: Minor tweak in SnapEwin()
...
Use EwinListGetAll() instead of EwinListOrderGet().
ListWinGroupMembersForEwin() uses EwinListGetAll() (i.e. the stacking
list) so it seems more consistent to use the same throughout this
function.
2022-04-04 13:21:18 +02:00
Kim Woelders
c5ffe964b0
arrange: Use object order list when arranging
...
Previously the stacking order was used. This meant that windows of the
same size after stacking changes might be shuffled around when doing e.g.
"desk arrange", which does not seem right.
2022-04-04 13:21:18 +02:00
Kim Woelders
31cb37f935
arrange: Remove pointless call to EwinListGetAll()
2022-04-04 13:21:18 +02:00