Skip to content

Commit d65e39f

Browse files
committed
Merge branch 'icewm-1-4-BRANCH'
2 parents 255837a + b3c2e38 commit d65e39f

26 files changed

+574
-211
lines changed

man/icesh.pod

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,76 @@ Sort the list of windows from topmost to bottom-most.
663663

664664
Reverse the order of the list of windows.
665665

666+
=item B<switchmenu>
667+
668+
Output the list as a menu for icewm's QuickSwitch. This action is to be
669+
used in a B<switchkey> directive in the C<keys> file.
670+
671+
=item B<print> I<format>
672+
673+
For each window in the selection, print a line according to I<format>.
674+
Here common backslash-escapes are recognized as well as the following
675+
percent formatting options:
676+
677+
=over
678+
679+
=item B<%>
680+
681+
A literal percent sign.
682+
683+
=item B<h>
684+
685+
The window height.
686+
687+
=item B<w>
688+
689+
The window width.
690+
691+
=item B<x>
692+
693+
The window x-position.
694+
695+
=item B<y>
696+
697+
The window y-position.
698+
699+
=item B<g>
700+
701+
The window geometry.
702+
703+
=item B<i>
704+
705+
The window identifying handle.
706+
707+
=item B<o>
708+
709+
An icon name.
710+
711+
=item B<p>
712+
713+
The process-ID of the window application.
714+
715+
=item B<c>
716+
717+
The WM_CLASS property of the window.
718+
719+
=item B<m>
720+
721+
The WM_CLIENT_MACHINE property of the window.
722+
723+
=item B<t>
724+
725+
The window title.
726+
727+
=item B<W>
728+
729+
The current workspace of the window.
730+
731+
=back
732+
733+
Each percent format option may start with a minus sign for
734+
left-alignment and have a numeric field width.
735+
666736
=back
667737

668738
=head2 MANAGER ACTIONS

man/icewm-keys.pod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ Following is the example F<keys> file that ships with L<icewm(1)>:
143143
# display and select monitor setup configurations
144144
switchkey "Super+p" icewm-menu-xrandr
145145

146+
# display and select from all terminals
147+
switchkey "Super+q" icesh -Z switchmenu
148+
146149
Following shows how to add mouse button bindings on the root window to
147150
change the current workspace rolling the mouse wheel on the desktop:
148151

man/icewm-menu.pod

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,59 +15,60 @@
1515
=head2 DESCRIPTION
1616

1717
The F<menu> file is responsible for configuring most of the L<icewm(1)>
18-
root menu and start menu.
18+
root menu and the start menu.
1919

20-
A menu of applications; usually customized by the user. B<icewm>
21-
provides the L<icewm-menu-fdo(1)> program to generate a default menu.
22-
Similar programs are L<xdg_menu(1)>, L<mmaker(1)> (MenuMaker),
23-
L<xde-menu(1)>, L<xdgmenumaker(1)>.
20+
A menu that gives access to applications; usually customized by the user.
21+
The L<icewm-menu-fdo(1)> program generates a default menu
22+
that contains most of the systems desktop applications.
23+
Similar programs are L<xdg_menu(1)>, L<mmaker(1)>,
24+
L<xde-menu(1)> and L<xdgmenumaker(1)>.
2425

2526
=head2 FORMAT
2627

2728
The file contains lines with the following syntax:
2829

2930
=over
3031

31-
=item B<prog> [B<">]I<title>[B<">] I<icon> I<program> I<options>
32+
=item B<prog> B<">I<title>B<"> I<icon> I<program> I<options>
3233

3334
Specifies a program to execute when the menu item is selected.
3435

35-
=item B<restart> [B<">]I<title>[B<">] I<icon> I<program> I<options>
36+
=item B<restart> B<">I<title>B<"> I<icon> I<program> I<options>
3637

3738
Specifies a program to replace the window manager when the menu item is
3839
selected. This is for launching other window managers from within
3940
L<icewm(1)>.
4041

41-
=item B<runonce> [B<">]I<title>[B<">] I<icon> B<">[I<name>][B<.>I<class>]B<"> I<program> I<options>
42+
=item B<runonce> B<">I<title>B<"> I<icon> B<">[I<name>][B<.>I<class>]B<"> I<program> I<options>
4243

4344
Specifies a program to execute when the menu item is selected; however,
4445
if a window of the specified I<name> and I<class> is present,
4546
the program will not be run again.
4647

47-
=item B<menu> [B<">]I<title>[B<">] I<icon> B<{>
48+
=item B<menu> B<">I<title>B<"> I<icon> B<{>
4849
# contained items
4950
B<}>
5051

5152
Specifies a sub-menu. The lines that appear between the braces can be
5253
any menu item described here.
5354

54-
=item B<menufile> [B<">]I<title>[B<">] I<icon> [B<">]I<filename>[B<">]
55+
=item B<menufile> B<">I<title>B<"> I<icon> B<">I<filename>B<">
5556

5657
Specifies a file from which to collect sub-menu items (lines) and place
5758
them at this point in the menu.
5859

59-
=item B<menuprog> [B<">]I<title>[B<">] I<icon> I<program> I<options>
60+
=item B<menuprog> B<">I<title>B<"> I<icon> I<program> I<options>
6061

6162
Specifies a program that will print sub-menu items on standard output,
6263
which will be collected and placed in the sub-menu at this point.
6364

64-
=item B<menuprogreload> [B<">]I<title>[B<">] I<icon> I<timeout>
65+
=item B<menuprogreload> B<">I<title>B<"> I<icon> I<timeout>
6566
I<program> I<options>
6667

6768
Similar to B<menuprog>, but after at least I<timeout> seconds
6869
the menu is regenerated.
6970

70-
=item B<include> [B<">]I<filename>[B<">]
71+
=item B<include> B<">I<filename>B<">
7172

7273
Read additional entries from the file I<filename>
7374

@@ -90,7 +91,7 @@ B<menuprog>, B<menuprogreload>, B<include>, B<includeprog>, B<separator>
9091

9192
These are literal string keywords.
9293

93-
=item [B<">]I<title>[B<">]
94+
=item B<">I<title>B<">
9495

9596
This is the I<title> string associated with the menu item that is
9697
displayed in the menu. When the I<title> contains spaces, the title

man/icewm-programs.pod

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,46 +25,46 @@ The format of the file contains one of the following line syntax:
2525

2626
=over
2727

28-
=item B<prog> [B<">]I<title>[B<">] I<icon> I<program> I<options>
28+
=item B<prog> B<">I<title>B<"> I<icon> I<program> I<options>
2929

3030
Specifies a program to execute when the menu item is selected.
3131

32-
=item B<restart> [B<">]I<title>[B<">] I<icon> I<program> I<options>
32+
=item B<restart> B<">I<title>B<"> I<icon> I<program> I<options>
3333

3434
Specifies a program to replace the window manager when the menu item is
3535
selected. This is for launching other window managers from within
3636
L<icewm(1)>.
3737

38-
=item B<runonce> [B<">]I<title>[B<">] I<icon> B<">[I<name>][B<.>I<class>]B<"> I<program> I<options>
38+
=item B<runonce> B<">I<title>B<"> I<icon> B<">[I<name>][B<.>I<class>]B<"> I<program> I<options>
3939

4040
Specifies a program to execute when the menu item is selected; however,
4141
if a window of the specified I<name> and I<class> is present,
4242
the program will not be run again.
4343

44-
=item B<menu> [B<">]I<title>[B<">] I<icon> B<{>
44+
=item B<menu> B<">I<title>B<"> I<icon> B<{>
4545
# contained items
4646
B<}>
4747

4848
Specifies a sub-menu. The lines that appear between the braces can be
4949
any menu item described here.
5050

51-
=item B<menufile> [B<">]I<title>[B<">] I<icon> [B<">]I<filename>[B<">]
51+
=item B<menufile> B<">I<title>B<"> I<icon> B<">I<filename>B<">
5252

5353
Specifies a file from which to collect sub-menu items (lines) and place
5454
them at this point in the menu.
5555

56-
=item B<menuprog> [B<">]I<title>[B<">] I<icon> I<program> I<options>
56+
=item B<menuprog> B<">I<title>B<"> I<icon> I<program> I<options>
5757

5858
Specifies a program that will print sub-menu items on standard output
5959
and will be collected and placed in the sub-menu at this point.
6060

61-
=item B<menuprogreload> [B<">]I<title>[B<">] I<icon> I<timeout>
61+
=item B<menuprogreload> B<">I<title>B<"> I<icon> I<timeout>
6262
I<program> I<options>
6363

6464
Similar to B<menuprog>, but after at least I<timeout> seconds
6565
the menu is regenerated.
6666

67-
=item B<include> [B<">]I<filename>[B<">]
67+
=item B<include> B<">I<filename>B<">
6868

6969
Read additional entries from the file I<filename>
7070

@@ -87,12 +87,11 @@ B<menuprog>, B<menuprogreload>, B<include>, B<includeprog>, B<separator>
8787

8888
These are literal string keywords.
8989

90-
=item [B<">]I<title>[B<">]
90+
=item B<">I<title>B<">
9191

9292
This is the I<title> string associated with the menu item that is
9393
displayed in the menu. When the I<title> contains spaces, the title
94-
must be surrounded by double quotes (C<">), although the I<title> may
95-
always be surrounded by double quotes if preferred.
94+
must be surrounded by double quotes (C<">).
9695

9796
=item I<icon>
9897

@@ -109,7 +108,8 @@ B<runonce> keyword.
109108

110109
=item I<program> I<options>
111110

112-
I<program> is the name of the executable or full path to the executable file that will
111+
I<program> is the name of the executable or full path to the executable
112+
file that will
113113
be run in response to selecting the menu item. When used with the
114114
B<menuprog> keyword, the I<program> must print on standard output the
115115
contents of the menu and is used for dynamic menus.

man/icewm-winoptions.pod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -187,20 +187,20 @@ Feature options enable/disable (1/0) additional features of the window.
187187
The normal default for all options is disabled (0) unless overridden by
188188
the application:
189189

190-
allWorkspaces: {1|0} on all workspaces.
191-
appTakesFocus: {1|0} let application take focus.
192-
doNotCover: {1|0} limits workspace if sticky.
193-
doNotFocus: {1|0} do not focus.
194-
doNotManage: {1|0} do not manage.
190+
allWorkspaces: {1|0} show it on all workspaces.
191+
appTakesFocus: {1|0} let the application take focus.
192+
doNotCover: {1|0} don't place other windows over it.
193+
doNotFocus: {1|0} do not give it focus.
194+
doNotManage: {1|0} do not manage at all.
195195
forcedClose: {1|0} no close confirmation dialog.
196196
fullKeys: {1|0} don't install icewm key bindings.
197197
ignoreNoFocusHint: {1|0} focus even when no-input is set.
198198
ignorePagerPreview: {1|0} do not show in pager preview.
199199
ignorePositionHint: {1|0} always let icewm place the window.
200-
ignoreQuickSwitch: {1|0} not on quick switch.
201-
ignoreTaskBar: {1|0} not on task bar.
200+
ignoreQuickSwitch: {1|0} not on the quick switch.
201+
ignoreTaskBar: {1|0} not on the task bar.
202202
ignoreUrgentHint: {1|0} ignore urgent hints.
203-
ignoreWinList: {1|0} not on window list.
203+
ignoreWinList: {1|0} not on the window list.
204204
ignoreActivationMessages: {1|0} only user can focus window.
205205
ignoreOverrideRedirect: {1|0} ignore the override redirect flag.
206206
noFocusOnAppRaise: {1|0} no automatic focus on raise.

man/icewm.pod

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -257,13 +257,15 @@ that is running on the current workspace, or all workspaces if
257257
C<TaskBarShowAllWindows=1>. Each task button shows the
258258
application icon and the application title. The active application is
259259
indicated by a pressed button. This is the application that has input
260-
focus. Pressing another button activates that application: it is
261-
brought to the foreground and receives input focus. Other mouse
262-
controlled activities on the window buttons are: dragging window buttons
263-
with the left mouse button to rearrange the order, closing the application
264-
window with C<Alt> + middle button, lowering the application window with
265-
C<Ctrl> + middle button, or bringing the application window to the current
266-
workspace with C<Shift> + middle button if C<TaskBarShowAllWindows=1>.
260+
focus. Clicking another button activates that application: it is
261+
brought to the foreground and receives input focus. Clicking the button
262+
of an active application minimizes it. To minimize an inactive application,
263+
click its button while C<Ctrl> is down.
264+
265+
The window buttons can be dragged with the left mouse button to rearrange
266+
their order. A window can be closed with C<Alt> + middle button, lowered
267+
with C<Ctrl> + middle button, or brought to the current workspace with
268+
C<Shift> + middle button when C<TaskBarShowAllWindows=1>.
267269

268270
If there are not many application buttons then a stretch of plain task
269271
bar is visible. Clicking on it with the right mouse button gives the
@@ -433,6 +435,12 @@ or above most others. Icewm menus appear in the I<Menu> layer and the
433435
I<Fullscreen> layer is reserved for windows in the fullscreen mode. The
434436
default layer for each application can be set with a I<winoption>.
435437

438+
Windows placed in the I<Dock> layer can be set to be always visible by
439+
setting the C<LimitByDockLayer> preference to 1. Then other windows are
440+
preferably not placed over such windows, unless they have explicit
441+
positioning information to do so. Maximized windows also don't overlap
442+
with these I<DockLayer> windows. The I<DoNotCover> winoption is similar.
443+
436444
=head2 DOCKED APPLICATIONS
437445

438446
Icewm has native support for L<Window Maker dockapps|https://dockapps.net>.

src/atasks.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,9 @@ void TaskButton::handleButton(const XButtonEvent& button) {
748748
if (button.button == Button1 && selected == 2 && fActive) {
749749
if (fMenu) {
750750
}
751-
else if (getFrame()->focused() && getFrame()->visibleNow() &&
751+
else if (getFrame()->visibleNow() && (getFrame()->focused() ||
752+
(getFrame()->isFullscreen() && taskBarFullscreenAutoShow)) &&
753+
getFrame()->canMinimize() && !getFrame()->isMinimized() &&
752754
(!getFrame()->canRaise(true) || (button.state & ControlMask)))
753755
{
754756
getFrame()->wmMinimize();

src/base.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ char *newstr(char const *str, int len);
114114
char *newstr(char const *str, char const *delim);
115115
char *cstrJoin(char const *str, ...);
116116

117+
void foldspaces(char* str);
117118
char* demangle(const char* str);
118119
unsigned long strhash(const char* str);
119120

src/decorate.cc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@ void YFrameWindow::updateMenu() {
5858
windowMenu->checkCommand(actionHide, isHidden());
5959
windowMenu->checkCommand(actionRollup, isRollup());
6060
windowMenu->checkCommand(actionOccupyAllOrCurrent, isAllWorkspaces());
61-
#if DO_NOT_COVER_OLD
62-
windowMenu->checkCommand(actionDoNotCover, doNotCover());
63-
#endif
6461
updateSubmenus();
6562
}
6663

0 commit comments

Comments
 (0)