Commit Graph
3991 Commits
Author SHA1 Message Date
trurl 0aecec095f Okay, it builds! 2024-12-30 22:27:06 -05:00
trurl 66e2ade2dc First crack at C<->Rust interaction.
Pushing elsewhere because this won't build on my laptop.
2024-12-30 22:00:38 -05:00
trurl 81b452fc87 Use pkg_config rules for ImageMagick, too.
This depends on a pending fix to the pkg_config
rule (https://github.com/cherrry/bazel_pkg_config/issues/1).
2024-12-28 21:54:58 -05:00
trurl 14c42f4092 Close to getting data file generation working properly.
Also adding a shell script that will copy the results of a test build to a
location from where it can be run.
2024-12-17 22:08:36 -05:00
trurl 7a5587acce Let's not track MODULE.bazel.lock at least for now. 2024-12-17 15:20:35 -05:00
trurl 1e17a1c2e6 Imitate most scripted data file generation. 2024-12-17 15:10:18 -05:00
trurl 8d005d055b Address corner case of stripped output file basename being empty. 2024-12-17 15:06:11 -05:00
trurl 0c35859424 Do string replacements in WindowMaker with a Python script that we can reuse elsewhere. 2024-11-12 10:05:43 -05:00
trurl 8fb7aba384 Start migrating data files to Bazel build. 2024-11-10 22:59:13 -05:00
trurl 86db9b25d3 Tweaks to BUILD files to build on laptop. 2024-11-07 21:41:12 -05:00
trurl 05b1cbf15f Locate packages with pkg-config (except for ImageMagick). 2024-11-02 14:52:07 -04:00
trurl 3566bd3a59 Add missing config files (which we are copying from autotools output for now). 2024-11-02 13:08:06 -04:00
trurl b97c72e7e5 Remove Bazel symlinks and ignore them in the future. 2024-11-02 13:02:55 -04:00
trurl 20a5e6c38b wmaker builds (but not verified). 2024-11-01 08:46:06 -04:00
trurl ba2d7dfaff Add missing files to wrlib build. 2024-11-01 00:32:02 -04:00
trurl 3f39e0094d Add missing files to WINGs build and name external repos with headers differently. 2024-11-01 00:31:15 -04:00
trurl f036d0f02c WINGs builds (but the result is completely unverified). 2024-10-31 23:30:21 -04:00
trurl d74a41d3a9 wrlib builds (but the result is completely unverified). 2024-10-31 22:11:35 -04:00
trurl 3667fbe247 Copy autotools-generated configs into Bazel tree. 2024-10-31 21:57:03 -04:00
trurl 1c3a2f17d3 Remove AC symbols from wraster.h. 2024-10-31 21:39:53 -04:00
trurl ac0de4e9e9 Mark where optional XSHM support was made mandatory. 2024-10-31 21:39:22 -04:00
trurl 1034a39316 Copy warster.h.in as originally present. 2024-10-31 21:38:09 -04:00
trurl 7dc23051e2 Do a better job of remembering wraster.h provenance. 2024-10-31 21:37:39 -04:00
trurl 701eac0a1a Copy source files into bazel subdir to get our hands dirty. 2024-10-31 21:36:49 -04:00
Страхиња РадићandCarlos R. Mafra 4b946f69e2 Update Serbian translation from master branch
Signed-off-by: Страхиња Радић <contact@strahinja.org>
2023-11-02 21:03:07 +00:00
Страхиња РадићandCarlos R. Mafra d55be193b8 Edit leftover automake files and READMEs for Serbian localization
This patch adds sr.po files to Makefile.am files throughout the repository
where needed. It also adds credits for Serbian localization in README files as
needed.

Signed-off-by: Страхиња Радић <contact@strahinja.org>
2023-11-02 19:28:30 +00:00
StrahinyaandCarlos R. Mafra e5b227fe8d Add Serbian localization
This patch adds Serbian localization to Window Maker.

Signed-off-by: Страхиња Радић <contact@strahinja.org>
2023-11-01 19:36:20 +00:00
Страхиња РадићandCarlos R. Mafra d947095881 util/wmgenmenu.c(main): Close parentheses around vgradient
Currently, menu definitions created by wmgenmenu don't include the closing
parenthesis in vgradient constructs. This patch adds the missing closing
parentheses.

Signed-off-by: Страхиња Радић <contact@strahinja.org>
2023-11-01 13:25:52 +00:00
Carlos R. Mafra 93b049356f Revert "WUtil: Be more strict about base directory for wmkdirhier()"
This reverts commit a0b283a60f,
as it breaks saving the history in ~GNUstep/.AppInfo/WindowMaker/History
by restricting modifications to either ~GNUstep/Defaults or ~GNUstep/Library.

Thanks to Paul Selig for reporting this issue.
2023-08-21 22:22:32 +01:00
Carlos R. Mafra 75f353bef4 Update .gitignore
Since

fc63d72032 (WINGs: Fix incorrect use of macro USE_PANGO in installed header)

and

0e274dc979 (WRaster: Fix incorrect use of macro USE_XSHM in installed header)

the files wrlib/wraster.h and WINGs/WINGs/WINGsP.h are generated by the compilation,
so add them to .gitignore
2023-08-21 21:35:30 +01:00
Christophe CURISandCarlos R. Mafra 2264ed9de6 Fix calculation of version number in the library mapfiles
As reported by Andreas Metzler, the latest API change in lib WRaster caused
a compatibility issue because the internal version number was increased.

To correctly handle this situation, this patch does 2 things:
 - do not discard the 2 last number in the "c:r:a" version, because we need them;
 - when calculating the version for the mapfile, use the formula that is
suggested in libtool's documentation.

The purpose of the formula is that when API is changed, if a new function
is added then the version is not incremented to reflect that we are still
compatible with current binaries, it will be incremented only when there
is a break in compatibility.
2023-08-12 21:53:52 +01:00
Carlos R. Mafra d0aa2cefcd Window Maker 0.96.0 2023-08-05 08:46:23 +01:00
David MaciejakandCarlos R. Mafra a52d13c8b8 Fix autoconf obsolete macros
autogen.sh is reporting some warnings as below

./autogen.sh 2>&1 |grep "obsolete"
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:115: warning: The macro `AC_LANG_C' is obsolete.
configure.ac:115: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:134: warning: The macro `AC_LANG_C' is obsolete.
configure.ac:134: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:135: warning: The macro `AC_LANG_C' is obsolete.
configure.ac:135: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:146: warning: The macro `AC_LANG_C' is obsolete.
configure.ac:146: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:146: warning: The macro `AC_LANG_C' is obsolete.
configure.ac:146: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:373: warning: The macro `AC_LANG_C' is obsolete.
configure.ac:373: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:458: warning: The macro `AC_HEADER_TIME' is obsolete.
configure.ac:681: warning: The macro `AC_TRY_LINK' is obsolete.
configure.ac:807: warning: The macro `AC_TRY_LINK' is obsolete.

As the minimum autoconf version required is v2.69,
we need to make sure to update obsolete macros as described at
https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
2023-04-14 23:45:00 +01:00
David MaciejakandCarlos R. Mafra 215b6ee2e6 Set proper motif wm hints name
Just a cosmetic change as the variable is currently not in use.
According to the Motif Toolkit API and MwmUtil.h, the last long
variable from the Motif WM Hints struct is currenlty used
for the status.
2023-04-09 10:42:52 +01:00
David MaciejakandCarlos R. Mafra ab45c6c6c2 Add central position feature for active window
This patch adds a new Central feature under the window menu
"Other maximization" entry.
Shortcut can be configured via WPrefs "Center active window" action.
When called the active window is centered on the screen head.
If the window height or width are bigger than the head size,
the window is resized to fit.
There are some transitions defined as below:
*from fullscreen to center
*from any corner to center
*from top half to center top half
*from bottom half to center bottom half
*from left half to center left half
*from right half to center right half

Undoing the action is done via the window menu "Unmaximize" entry
or the shortcut.
2023-03-31 09:11:38 +01:00
David MaciejakandCarlos R. Mafra 3344f2b040 NEWS: Hot corners feature description
Add an entry in the NEWS to describe the Hot Corners feature.
2023-03-26 10:35:33 +01:00
David MaciejakandCarlos R. Mafra ecef2b2890 WPrefs: Hot corner preferences
Add a new "Hot Corner Shortcut Preferences" section to WPrefs
to configure the Hot Corners feature.
2023-03-26 10:35:33 +01:00
David MaciejakandCarlos R. Mafra 802cbc0d75 Hot corners feature core
Add mouse pointer position detection to trigger the corner actions.

Screen corners can be assigned an external command to be
executed when the mouse pointer is entering those areas.

In WPrefs, "Hot Corner Shortcut Preferences" can be used
for configuration or by manually adding a "HotCorners" key
and value to "YES" in the ~/GNUstep/Defaults/WindowMaker file.

Actions are specified by the "HotCornerActions" and are defined
as a four entries list ("top left action", "top right action",
"bottom left action", "bottom right action").
A screen corner area is a cube shape defined by the "HotCornerEdge"
which is a number of pixels from 2 (by default) to 10.

To lower the risk of triggering that feature accidentally a
"HotCornerDelay" key can be used which is the time before the action
is triggered while the pointer is in one of the screen corner.
Default value is 250 ms.

Hot Corners feature is disabled by default.
2023-03-26 10:35:33 +01:00
David MaciejakandCarlos R. Mafra 157d1ba85f Fix internal function name typo
The patch is to fix a typo in the fct name movePionterToWindowCenter
2023-03-23 12:57:58 +00:00
David MaciejakandCarlos R. Mafra 91e7f37074 WPrefs: fix keyboard shortcut sorting order
That patch is fixing some Actions entries that are not sorted properly.
One is using some upper/lower cases.
And the other one, is displaying numbers while alphabetic sorting is not
working properly on numbers. For example:
Shortcut for window 1
Shortcut for window 10
Shortcut for window 2
...
2023-03-21 15:20:19 +00:00
David MaciejakandCarlos R. Mafra 18a539b372 Add some more cases to handle window unusual size request
As discussed on the ML, the test to check for CARD16 limit is probably innacurate.
Check instead for maxH and maxW which are set by default to twice the size
of the screen or to the max values passed by the window normal hints property.
2023-03-16 15:02:18 +00:00
David MaciejakandCarlos R. Mafra eae9200c5d Fix ICCM ConfigureNotify request
According to ICCM specs at [1]

*Not changing the size, location, border width, or stacking order of the window at all.
A client will receive a synthetic ConfigureNotify event that describes the (unchanged)
geometry of the window. The (x,y) coordinates will be in the root coordinate system,
adjusted for the border width the client requested, irrespective of any reparenting
that has taken place. The border_width will be the border width the client requested.
The client will not receive a real ConfigureNotify event because no change has actually
taken place.

*Moving or restacking the window without resizing it or changing its border width.
A client will receive a synthetic ConfigureNotify event following the change that
describes the new geometry of the window. The event's (x,y) coordinates will be in
the root coordinate system adjusted for the border width the client requested.
The border_width will be the border width the client requested. The client may not
receive a real ConfigureNotify event that describes this change because the window
manager may have reparented the top-level window. If the client does receive a
real event, the synthetic event will follow the real one.

*Resizing the window or changing its border width
(regardless of whether the window was also moved or restacked).
A client that has selected for StructureNotify events will receive a real
ConfigureNotify event.
Note that the coordinates in this event are relative to the parent,
which may not be the root if the window has been reparented. The coordinates will
reflect the actual border width of the window (which the window manager may have
changed). The TranslateCoordinates request can be used to convert the coordinates
if required.

In Window Maker, the first case is not implemented: doing a synthetic ConfigureNotify
to notify no changes were done. That's creating some issues with app like Citrix icaclient
when sometime windows are blank and need to be moved to be refreshed.

[1]https://x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html#configuring_the_window
2023-03-16 15:02:18 +00:00
David MaciejakandCarlos R. Mafra 25cb9d208a Update window.c copyright
Just updating the copyright line in the file header.
2023-03-16 15:02:18 +00:00
David MaciejakandCarlos R. Mafra 23471b2e21 WPrefs: update maximization feature descriptions
Align the old maximization descriptions to the new visual indicator
names. The internal shortcut names had also been updated, meaning a
reconfiguration of the shortcuts in WPrefs is required.
2023-03-16 11:36:02 +00:00
David MaciejakandCarlos R. Mafra 258ffc8b97 Window menu: add maximization visual indicators
Add visual indicators for the maximization options in the window menu.
2023-03-14 12:27:16 +00:00
David MaciejakandCarlos R. Mafra 86b7ec1a58 Restore proper drawer direction when screen was resized
Since 48d4820dee the dock is positioned
dynamically based on the screen midpoint.
The side issue using such method is if in case the screen was temporarily
resized the dock as a chance to be displayed on the other side making
the drawer saved configuration from WMState esp the direction wrong when
wm is started again.
For example, the dock and drawer are displayed on the right of the screen.
Then the screen resolution is downsized temporaily to half or less of
the previous size. The position stored in WMState will be updated and the
direction of the drawer is still opening on the left.
But on next wm start, when reading the conf.
The position of the dock and drawer are corresponding to the
middle or less of the unresized screen. The dock and drawer will be sticked
on the left. But the drawer direction was not updated and still opening
on the left (which is out of the screen).
2023-03-14 12:27:16 +00:00
Doug TorranceandCarlos R. Mafra 9831e3f72a Move declarations to beginning of switch statements
Several variable declarations were recently added immediately after
labels, but this causes compile errors in GCC versions prior to 11,
e.g.,

    wsmap.c: In function ‘handle_event’:
    wsmap.c:534:4: error: a label can only be part of a statement and a declaration is not a statement
      534 |    WMScreen *wmscr = wsmap->scr->wmscreen;
          |    ^~~~~~~~

We move these declarations to the top of the corresponding switch
statements so that Window Maker can compile on these older versions of
GCC.
2023-03-13 15:33:21 +00:00
David MaciejakandCarlos R. Mafra 0a55facac0 wmiv: align version with wm
Use wm version for the wmiv util.
2023-03-13 15:32:19 +00:00
David MaciejakandCarlos R. Mafra 0ecf7d3540 KeepDockOnPrimaryHead: fix drawer direction
When that option is on, swapping drawer does not always mean
swapping drawer direction. For example if drawer is on the left
side of the second head and moving to the left side of the first head,
the direction should be the same.
2023-03-13 15:32:19 +00:00
David MaciejakandCarlos R. Mafra 4576b5bf1e Info Panel: display proper number of colors in deepcolor env
Instead of displaying a number of unitary colors in 10bit env,
display a more human readable message.
2023-03-13 15:32:19 +00:00