From a89859ab320f4e20b7eda2e88237b134654e2e79 Mon Sep 17 00:00:00 2001 From: lkn Date: Sat, 6 Jun 2026 11:01:04 +0200 Subject: [PATCH] cleanup: remove WL_DECOMPOSITION_PLAN.md (decomposition complete) --- WINGs/Examples/.deps/colorpick.Po | 1 - WINGs/Examples/.deps/fontl.Po | 1 - WINGs/Examples/.deps/puzzle.Po | 1 - WINGs/Extras/.deps/tableview.Po | 1 - WINGs/Extras/.deps/wtabledelegates.Plo | 1 - WINGs/Extras/.deps/wtableview.Plo | 1 - WINGs/Tests/.deps/mywidget.Po | 1 - WINGs/Tests/.deps/testmywidget.Po | 1 - WINGs/Tests/.deps/wmfile.Po | 1 - WINGs/Tests/.deps/wmquery.Po | 1 - WINGs/Tests/.deps/wtest.Po | 1 - WL_DECOMPOSITION_PLAN.md | 354 --------------------- build/wayland-only/src/wconfig.h | 406 +++++++++++++++++++++++++ wrlib/tests/.deps/testdraw.Po | 1 - wrlib/tests/.deps/testgrad.Po | 1 - wrlib/tests/.deps/testrot.Po | 1 - wrlib/tests/.deps/view.Po | 1 - 17 files changed, 406 insertions(+), 369 deletions(-) delete mode 100644 WL_DECOMPOSITION_PLAN.md create mode 100644 build/wayland-only/src/wconfig.h diff --git a/WINGs/Examples/.deps/colorpick.Po b/WINGs/Examples/.deps/colorpick.Po index 9ce06a8..e69de29 100644 --- a/WINGs/Examples/.deps/colorpick.Po +++ b/WINGs/Examples/.deps/colorpick.Po @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Examples/.deps/fontl.Po b/WINGs/Examples/.deps/fontl.Po index 9ce06a8..e69de29 100644 --- a/WINGs/Examples/.deps/fontl.Po +++ b/WINGs/Examples/.deps/fontl.Po @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Examples/.deps/puzzle.Po b/WINGs/Examples/.deps/puzzle.Po index 9ce06a8..e69de29 100644 --- a/WINGs/Examples/.deps/puzzle.Po +++ b/WINGs/Examples/.deps/puzzle.Po @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Extras/.deps/tableview.Po b/WINGs/Extras/.deps/tableview.Po index 9ce06a8..e69de29 100644 --- a/WINGs/Extras/.deps/tableview.Po +++ b/WINGs/Extras/.deps/tableview.Po @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Extras/.deps/wtabledelegates.Plo b/WINGs/Extras/.deps/wtabledelegates.Plo index 9ce06a8..e69de29 100644 --- a/WINGs/Extras/.deps/wtabledelegates.Plo +++ b/WINGs/Extras/.deps/wtabledelegates.Plo @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Extras/.deps/wtableview.Plo b/WINGs/Extras/.deps/wtableview.Plo index 9ce06a8..e69de29 100644 --- a/WINGs/Extras/.deps/wtableview.Plo +++ b/WINGs/Extras/.deps/wtableview.Plo @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Tests/.deps/mywidget.Po b/WINGs/Tests/.deps/mywidget.Po index 9ce06a8..e69de29 100644 --- a/WINGs/Tests/.deps/mywidget.Po +++ b/WINGs/Tests/.deps/mywidget.Po @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Tests/.deps/testmywidget.Po b/WINGs/Tests/.deps/testmywidget.Po index 9ce06a8..e69de29 100644 --- a/WINGs/Tests/.deps/testmywidget.Po +++ b/WINGs/Tests/.deps/testmywidget.Po @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Tests/.deps/wmfile.Po b/WINGs/Tests/.deps/wmfile.Po index 9ce06a8..e69de29 100644 --- a/WINGs/Tests/.deps/wmfile.Po +++ b/WINGs/Tests/.deps/wmfile.Po @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Tests/.deps/wmquery.Po b/WINGs/Tests/.deps/wmquery.Po index 9ce06a8..e69de29 100644 --- a/WINGs/Tests/.deps/wmquery.Po +++ b/WINGs/Tests/.deps/wmquery.Po @@ -1 +0,0 @@ -# dummy diff --git a/WINGs/Tests/.deps/wtest.Po b/WINGs/Tests/.deps/wtest.Po index 9ce06a8..e69de29 100644 --- a/WINGs/Tests/.deps/wtest.Po +++ b/WINGs/Tests/.deps/wtest.Po @@ -1 +0,0 @@ -# dummy diff --git a/WL_DECOMPOSITION_PLAN.md b/WL_DECOMPOSITION_PLAN.md deleted file mode 100644 index 570d7ea..0000000 --- a/WL_DECOMPOSITION_PLAN.md +++ /dev/null @@ -1,354 +0,0 @@ -# wl_backend.c Decomposition Plan - -## Overview - -`src/backend/wayland/wl_backend.c` is 2329 lines containing 6 unrelated functional -areas that have accumulated in a single file. This plan decomposes it into -focused modules, each of which can be carried out as an independent commit. - -The target is to reduce `wl_backend.c` to ~900 lines containing only the -compositor lifecycle (open/close/run/terminate) and the small protocol handlers -that are tightly coupled to it. - ---- - -## Pre-requisites - -- Build system: `src/Makefile.am` (lines 164-209) lists all `backend/wayland/*.c` - files under `wmaker_SOURCES`. Any new `.c` file must be added there. -- After editing `Makefile.am`, run `autoreconf -fi && ./configure ` to - regenerate `Makefile.in` and `Makefile`. -- All wayland backend files share state through the global `wl_state` struct - declared in `wl_types.h` and defined in `wl_backend.c`. -- Forward declarations use `extern` for functions defined in other `.c` files. - Functions that become file-local after extraction should be marked `static`. - ---- - -## Step 1 — Remove duplicate layer shell code (delete ~180 lines) - -**Problem:** `wl_backend.c` lines 1539-1720 contain a `static` copy of the -layer shell implementation. An identical non-static copy exists in -`wl_layer_shell.c` (196 lines, already in `Makefile.am`). The `static` -qualifier on the `wl_backend.c` copy means it shadows the `wl_layer_shell.c` -version within this translation unit — the `wl_layer_shell.c` version is -effectively dead code. - -**Functions to delete from `wl_backend.c`:** - -| Function | Lines | Status in wl_backend.c | -|---|---|---| -| `layer_surface_compute_geometry` | 1546-1568 | `static` — duplicate | -| `layer_surface_compute_position` | 1574-1608 | `static` — duplicate | -| `handle_layer_surface_map` | 1610-1618 | `static` — duplicate | -| `handle_layer_surface_unmap` | 1620-1630 | `static` — duplicate | -| `handle_layer_surface_destroy` | 1632-1646 | `static` — duplicate | -| `handle_layer_shell_new_surface` | 1653-1720 | `static` — duplicate | -| `LAYER_VIEW_FROM` macro | 1539-1540 | duplicate of wl_layer_shell.c:14 | - -**Changes:** - -1. In `wl_backend.c`, delete lines 1539-1720 (the `LAYER_VIEW_FROM` macro - through the end of `handle_layer_shell_new_surface`). - -2. In `wl_backend.c`, change the forward declaration at line 222 from: - ```c - static void handle_layer_shell_new_surface(struct wl_listener *listener, void *data); - ``` - to: - ```c - extern void handle_layer_shell_new_surface(struct wl_listener *listener, void *data); - ``` - -3. No `Makefile.am` change needed — `wl_layer_shell.c` is already listed. - -**Verification:** `make clean && make` — the linker resolves -`handle_layer_shell_new_surface` from `wl_layer_shell.o`. Run the compositor -and verify a layer-shell client (e.g. `waybar`, `wlr-randr`) still works. - ---- - -## Step 2 — Extract desktop background to `wl_background.c` (~300 lines) - -**Problem:** `wl_set_desktop_background()` (lines 2034-2287) plus its helper -types and functions (lines 1984-2032) form a self-contained 300-line module -for rendering wallpapers. It has no callers within `wl_backend.c` — it is -called from `defaults.c` via the backend vtable. - -**Functions/types to move:** - -| Symbol | Lines | Visibility | -|---|---|---| -| `struct wl_bg_buffer` | 1987-1990 | file-local struct | -| `bg_buffer_destroy` | 1992-1998 | `static` | -| `bg_buffer_begin_data_ptr_access` | 2000-2009 | `static` | -| `bg_buffer_end_data_ptr_access` | 2011-2014 | `static` | -| `bg_buffer_impl` | 2016-2020 | `static const` | -| `parse_color_to_rcolor` | 2022-2032 | `static` | -| `wl_set_desktop_background` | 2034-2287 | `extern` (vtable) | - -**Steps:** - -1. Create `src/backend/wayland/wl_background.c` with these includes: - ```c - #ifdef HAVE_CONFIG_H - #include "config.h" - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include "../../screen.h" - #include "../../resources.h" - #include "wl_types.h" - ``` - -2. Move all 7 symbols listed above into the new file. Keep `static` on the - helpers; `wl_set_desktop_background` stays non-static. - -3. Delete lines 1984-2287 from `wl_backend.c`. - -4. In `wl_backend.c`, the `#include` list does not need changes — the function - is resolved at link time. - -5. Add to `src/Makefile.am` inside the `if USE_WAYLAND_BACKEND` block: - ``` - backend/wayland/wl_background.c \ - ``` - -6. Run `autoreconf -fi && ./configure && make`. - -**Verification:** Set a gradient or pixmap background in -`~/GNUstep/Defaults/WindowMaker` and confirm it renders. - ---- - -## Step 3 — Move screen internals to `wl_screen.c` (~235 lines) - -**Problem:** `wl_screen.c` already contains `wl_screen_open`, -`wl_screen_close`, `wl_screen_init_display`, `wl_show_crash_dialog`, -`wl_get_color_for_colormap`, and `wl_parse_color` (244 lines). But the -screen setup functions `wl_screen_alloc_gcs`, `wl_screen_create_internals`, -`wl_screen_create_pixmaps`, `wl_screen_load_tech_font`, and the one-liner -stubs remain in `wl_backend.c`. - -**Functions to move:** - -| Function | Lines | Notes | -|---|---|---| -| `wl_screen_select_input` | 1732 | one-liner stub | -| `wl_screen_set_root_cursor` | 1733 | one-liner stub | -| `wl_screen_set_icon_sizes` | 1734 | one-liner stub | -| `wl_screen_setup_noticeboard` | 1735 | one-liner stub | -| `wl_screen_alloc_gcs` | 1737-1836 | ~100 lines, X11 GC creation | -| `wl_screen_create_internals` | 1838-1966 | ~130 lines, scene setup | -| `wl_screen_create_pixmaps` | 1967 | one-liner stub | -| `wl_screen_load_tech_font` | 1968-1978 | small | -| `wl_screen_show_mini_screenshot` | 1979 | one-liner stub | -| `wl_screen_capture_area` | 1980 | one-liner stub | -| `wl_screen_capture_window` | 1981 | one-liner stub | -| `wl_refresh_desktop` | 1982 | one-liner stub | -| `wl_monitors_query` | 2289-2323 | ~35 lines | -| `wl_monitors_select_events` | 2325 | one-liner stub | - -**Steps:** - -1. Add required includes to `wl_screen.c` (some may already be present): - ```c - #include - #include - #include - #include - #include "../../framewin.h" - #include "../../defaults.h" - #include "../../xmodifier.h" - #include "../../def_pixmaps.h" - ``` - -2. `wl_screen_create_internals` references these external symbols that must - be declared (via `extern` or header include) in `wl_screen.c`: - - `frame_buf_impl` — defined in `wl_framebuf.c`; add `extern const struct wlr_buffer_impl frame_buf_impl;` - - `fb_attach_tree_listener`, `fb_attach_scene_buf_listener` — defined in `wl_framebuf.c` - - `W_RegisterBacking`, `W_UnregisterBacking` — WINGs internals - - `OVL_GH` — defined in `wl_overlay.c` or `wl_types.h` - -3. `wl_screen_alloc_gcs` references `DEF_FRAME_THICKNESS` (from `framewin.h`) - and `WM_EVMASK_*` macros. Ensure these headers are included. - -4. Move all 14 functions listed above from `wl_backend.c` into `wl_screen.c`. - -5. Delete lines 1732-1982 and 2289-2329 from `wl_backend.c`. - -6. No `Makefile.am` change needed — `wl_screen.c` is already listed. - -**Verification:** `make` succeeds. Launch compositor, verify screen -initialization (GCs created, workspace badge visible, dock shadow works). - ---- - -## Step 4 — Extract X11 event bridge to `wl_xwayland.c` (~55 lines) - -**Problem:** `wl_handle_x11_events()` (lines 269-326) translates XEvents from -the XWayland connection into WMEvents. It belongs with the other XWayland -code in `wl_xwayland.c` (429 lines, already in `Makefile.am` under -`USE_XWAYLAND`). - -**Functions to move:** - -| Function | Lines | Notes | -|---|---|---| -| `wl_handle_x11_events` | 269-326 | `static` in wl_backend.c | - -**Steps:** - -1. Move `wl_handle_x11_events` to `wl_xwayland.c`. Remove `static` so it - can be called from `wl_backend.c`. - -2. In `wl_backend.c`, replace the function body with: - ```c - extern int wl_handle_x11_events(int fd, uint32_t mask, void *data); - ``` - (The non-XWAYLAND stub at lines 323-325 stays in `wl_backend.c`.) - -3. Ensure `wl_xwayland.c` includes `` and `"../../event.h"` - for `WMHandleEvent`. - -**Verification:** Launch with XWayland enabled, open an X11 app (e.g. -`xterm`), verify keyboard/mouse events work. - ---- - -## Step 5 — Extract protocol global init from `wl_display_open()` (~240 lines) - -**Problem:** `wl_display_open()` is 670 lines. Lines 578-818 are a linear -sequence of ~25 protocol global creation calls (`wlr_*_create` + -`wl_signal_add`). This block has no control flow dependencies on the -surrounding code beyond `wl_state.display` and `wl_state.seat` being set. - -**Approach:** Extract into a helper function `wl_protocols_init()` in -`wl_extensions.c` (which currently contains only stubs and error handlers — -172 lines). - -**Steps:** - -1. In `wl_extensions.c`, add a new function: - ```c - void wl_protocols_init(void) - ``` - that contains the protocol global creation block (lines 578-818 of - `wl_backend.c`). This includes creation of: - - `wlr_compositor`, `wlr_subcompositor` - - `wlr_seat`, `wlr_data_device_manager` - - seat event wiring (request_set_cursor, request_set_selection, - request_start_drag, request_set_primary_selection) - - `wlr_primary_selection_v1_device_manager` - - `wlr_xdg_output_manager_v1` - - `wlr_idle_inhibit_v1` - - `wlr_viewporter` - - `wlr_relative_pointer_manager_v1` - - `wlr_pointer_constraints_v1` - - `wlr_keyboard_shortcuts_inhibit_v1` - - `wlr_linux_dmabuf_v1` - - `wlr_screencopy_manager_v1` - - `wlr_export_dmabuf_manager_v1` - - `wlr_output_manager_v1` - - `wlr_output_power_manager_v1` - - `wlr_gamma_control_manager_v1` - - `wlr_presentation` - - `wlr_text_input_manager_v3` - - `wlr_input_method_manager_v2` - - `wlr_virtual_keyboard_manager_v1` - - `wlr_foreign_toplevel_manager_v1` - - `wlr_xdg_activation_v1` - - `wlr_layer_shell_v1` - - `wlr_data_control_manager_v1` - - `wlr_virtual_pointer_manager_v1` - - `wlr_xdg_foreign_registry` + `wlr_xdg_foreign_v2` - - `wlr_xdg_shell` - - `wmaker_popup_manager_v1` (custom protocol) - - `wlr_xdg_decoration_manager_v1` - - `wlr_renderer_init_wl_shm` - -2. The function needs these `extern` handler declarations (move from - `wl_backend.c` forward-declaration block): - - `handle_seat_request_cursor` - - `handle_seat_request_set_selection` — currently `static` in wl_backend.c; - must become non-static and move to `wl_extensions.c` or stay in - wl_backend.c with an `extern` declaration - - `handle_seat_request_start_drag` — already in `wl_dnd.c` - - `handle_seat_request_primary_selection` — currently `static`; same treatment - - `handle_idle_new_inhibitor` — currently `static`; same treatment - - `handle_new_pointer_constraint` — currently `static`; same treatment - - `handle_new_shortcuts_inhibitor` — currently `static`; same treatment - - All the `extern` handlers already in other files (output_mgr, text_input, etc.) - -3. Move the 5 small `static` handler functions that are only used by protocol - init into `wl_extensions.c` as well (remove `static`): - - `handle_seat_request_set_selection` (lines 1451-1459) - - `handle_seat_request_primary_selection` (lines 1467-1475) - - `handle_idle_new_inhibitor` (lines 1484-1491) - - `handle_new_pointer_constraint` (lines 1507-1517) - - `handle_new_shortcuts_inhibitor` (lines 1528-1535) - -4. In `wl_display_open()`, replace lines 578-821 with: - ```c - wl_protocols_init(); - ``` - -5. Add required `#include` directives to `wl_extensions.c` for the wlroots - protocol types used. The full list is long — copy the relevant subset - from `wl_backend.c`'s include block. - -6. No `Makefile.am` change needed — `wl_extensions.c` is already listed. - -**Verification:** `make` succeeds. Launch compositor, verify all protocol -globals are advertised (`wayland-info` or `wlr-randr` should list them). - ---- - -## Execution order - -Steps are ordered by risk (lowest first) and independence: - -| Step | Risk | Reason | -|---|---|---| -| 1 (layer shell dedup) | **Lowest** | Pure deletion of shadowed static code | -| 2 (background) | **Low** | Self-contained, no cross-references | -| 3 (screen internals) | **Medium** | Many extern references to resolve | -| 4 (X11 bridge) | **Low** | Small, single function | -| 5 (protocol init) | **Medium** | Touches the critical init path; many handler relocations | - -Each step should be a separate commit. Build and smoke-test after each. - ---- - -## Expected result - -| File | Before | After | -|---|---|---| -| `wl_backend.c` | 2329 lines | ~900 lines | -| `wl_layer_shell.c` | 196 lines (dead) | 196 lines (live) | -| `wl_background.c` | — (new) | ~310 lines | -| `wl_screen.c` | 244 lines | ~480 lines | -| `wl_xwayland.c` | 429 lines | ~485 lines | -| `wl_extensions.c` | 172 lines | ~450 lines | - -The remaining `wl_backend.c` contains: -- `wl_display_open()` (~430 lines) — backend/renderer/allocator/scene/cursor - creation, XKB keymap, XWayland setup, frame timer, shutdown pipe, pump thread -- `wl_display_close()` (~210 lines) — teardown and listener removal -- `wl_display_post_open()`, `wl_display_screen_count()`, - `wl_display_default_screen()` — trivial stubs -- `wl_event_loop_run()` (~190 lines) — signalfd, main dispatch loop -- `wl_event_loop_terminate()` — shutdown pipe write -- `wl_startup_pump_thread()` — startup helper -- `wl_shutdown_pipe_handler()`, `frame_timer_cb()` — event loop callbacks -- Global `wl_state` definition - -This is a coherent "compositor lifecycle" module at a manageable size. diff --git a/build/wayland-only/src/wconfig.h b/build/wayland-only/src/wconfig.h new file mode 100644 index 0000000..46af069 --- /dev/null +++ b/build/wayland-only/src/wconfig.h @@ -0,0 +1,406 @@ +/* + * wconfig.h- default configuration and definitions + compile time options + * + * WindowMaker window manager + * + * Copyright (c) 1997-2003 Alfredo K. Kojima + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#ifndef WMCONFIG_H_ +#define WMCONFIG_H_ + +#include "config.h" +#include "backend/backend_types.h" + +/*** Change this file (wconfig.h) *after* you ran configure ***/ + +/* + * Comment out the following #defines if you want to disable a feature. + * Also check the features you can enable through configure. + */ + +/* + * Undefine BALLOON_TEXT if you don't want balloons for showing extra + * information, like window titles that are not fully visible. + */ +#define BALLOON_TEXT + +/* + * If balloons should be shaped or be simple rectangles. + * The X server must support the shape extensions and it's support + * must be enabled (default). + */ +#define SHAPED_BALLOON + +/* + * Turn on a hack to make mouse and keyboard actions work even if + * the NumLock or ScrollLock modifiers are turned on. They might + * inflict a performance/memory penalty. + * + * If you're an X expert (knows the implementation of XGrabKey() in X) + * and knows that the penalty is small (or not), please tell me. + */ +#define NUMLOCK_HACK + +/* + * define OPTIMIZE_SHAPE if you want the shape setting code to be optimized + * for applications that change their shape frequently (like xdaliclock + * -shape), removing flickering. If wmaker and your display are on + * different machines and the network connection is slow, it is not + * recommended. + */ +#undef OPTIMIZE_SHAPE + +/* define CONFIGURE_WINDOW_WHILE_MOVING if you want WindowMaker to send + * the synthetic ConfigureNotify event to windows while moving at every + * single movement. Default is to send a synthetic ConfigureNotify event + * only at the end of window moving, which improves performance. + */ +#undef CONFIGURE_WINDOW_WHILE_MOVING + +/* disable/enable workspace indicator in the dock */ +#undef WS_INDICATOR + +/* + * define HIDDENDOT if you want a dot to be shown in the application icon + * of applications that are hidden. + */ +#define HIDDENDOT + +/* + * Ignores the PPosition hint from clients. This is needed for some + * programs that have buggy implementations of such hint and place + * themselves in strange locations. + */ +#undef IGNORE_PPOSITION + +/* + * The following options WILL NOT BE MADE RUN-TIME. Please do not request. + * They will only add unneeded bloat. + */ + +/* + * define SHADOW_RESIZEBAR if you want a resizebar with shadows like in + * AfterStep, instead of the default Openstep look. + * NEXTSTEP 3.3 also does not have these shadows. + */ +#undef SHADOW_RESIZEBAR + +#define NORMAL_ICON_KABOOM + +/* + * #define if you want the window creation animation when superfluous + * is enabled. + */ +#undef WINDOW_BIRTH_ZOOM + +/* + * Some of the following options can be configured in the preference files, + * but if for some reason they can't, these are their defaults. + * + * There are also some options that can only be configured here, at compile time. + */ + +/* list of paths to look for the config files, searched in order of appearance */ +#define DEF_CONFIG_PATHS "~/GNUstep/Library/WindowMaker:"PKGDATADIR +#define DEF_MENU_FILE "menu" + +/* name of the script to execute at startup */ +#define DEF_INIT_SCRIPT "autostart" +#define DEF_EXIT_SCRIPT "exitscript" + +#ifdef USE_TIFF +#define DEF_BUTTON_IMAGES PKGDATADIR"/buttons.tiff" +#else +#define DEF_BUTTON_IMAGES PKGDATADIR"/buttons.xpm" +#endif + +/* the file of the system wide submenu to be forced into the main menu */ +#define GLOBAL_PREAMBLE_MENU_FILE "GlobalMenu.pre" +#define GLOBAL_EPILOGUE_MENU_FILE "GlobalMenu.post" + +/* pixmap path */ +#define DEF_PIXMAP_PATHS \ + "(" \ + "\"~/GNUstep/Library/WindowMaker/Pixmaps\"," \ + "\"~/GNUstep/Library/WindowMaker/Backgrounds\"," \ + "\"~/GNUstep/Library/WindowMaker/CachedPixmaps\"," \ + "\"~/pixmaps\"," \ + "\""PKGDATADIR"/Pixmaps\"," \ + "\""PKGDATADIR"/Backgrounds\"," \ + "\""PIXMAPDIR"\"" \ + ")" + +#ifdef USER_MENU +#define GLOBAL_USER_MENU_PATH PKGDATADIR"/UserMenus" +#define DEF_USER_MENU_PATHS \ + "~/GNUstep/Library/WindowMaker/UserMenus:"GLOBAL_USER_MENU_PATH +#endif + +/* icon path */ +#define DEF_ICON_PATHS \ + "(" \ + "\"~/GNUstep/Library/Icons\"," \ + "\"~/GNUstep/Library/WindowMaker/Pixmaps\"," \ + "\"~/GNUstep/Library/WindowMaker/CachedPixmaps\"," \ + "\"~/pixmaps\"," \ + "\""PKGDATADIR"/Icons\"," \ + "\""PKGDATADIR"/Pixmaps\"," \ + "\""PIXMAPDIR"\"" \ + ")" + +/* window title to use for untitled windows */ +#define DEF_WINDOW_TITLE "Untitled" + +/* default style */ +#define DEF_FRAME_COLOR "white" + +/* default fonts */ +#define DEF_TITLE_FONT "\"Sans:bold:pixelsize=12\"" +#define DEF_MENU_TITLE_FONT "\"Sans:bold:pixelsize=12\"" +#define DEF_MENU_ENTRY_FONT "\"Sans:pixelsize=12\"" +#define DEF_ICON_TITLE_FONT "\"Sans:pixelsize=9\"" +#define DEF_CLIP_TITLE_FONT "\"Sans:bold:pixelsize=10\"" +#define DEF_WORKSPACE_NAME_FONT "\"Sans:pixelsize=24\"" + +/* line width of the move/resize frame */ +#define DEF_FRAME_THICKNESS 1 + +#define DEF_WINDOW_TITLE_EXTEND_SPACE "0" +#define DEF_MENU_TITLE_EXTEND_SPACE "0" +#define DEF_MENU_TEXT_EXTEND_SPACE "0" +#define TITLEBAR_EXTEND_SPACE 4 + +#define DEF_XPM_CLOSENESS 40000 + +/* default position of application menus */ +#define DEF_APPMENU_X 10 +#define DEF_APPMENU_Y 10 + +/* calculate window edge resistance from edge resistance */ +#define WIN_RESISTANCE(x) (((x)*20)/30) + +/* Window level where icons reside */ +#define NORMAL_ICON_LEVEL WMNormalLevel + +/* do not divide main menu and submenu in different tiers, + * opposed to OpenStep */ +#define SINGLE_MENULEVEL + +/* max. time to spend doing animations in seconds. If the animation + * time exceeds this value, it is immediately finished. Useful for + * moments of high-load. DO NOT set *_DELAY_{Z,T,F} to zero! + */ +#define MAX_ANIMATION_TIME 1 +/* Zoom animation */ +#define MINIATURIZE_ANIMATION_FRAMES_Z 7 +#define MINIATURIZE_ANIMATION_STEPS_Z 16 +#define MINIATURIZE_ANIMATION_DELAY_Z 10000 +/* Twist animation */ +#define MINIATURIZE_ANIMATION_FRAMES_T 12 +#define MINIATURIZE_ANIMATION_STEPS_T 16 +#define MINIATURIZE_ANIMATION_DELAY_T 20000 +#define MINIATURIZE_ANIMATION_TWIST_T 0.5 +/* Flip animation */ +#define MINIATURIZE_ANIMATION_FRAMES_F 12 +#define MINIATURIZE_ANIMATION_STEPS_F 16 +#define MINIATURIZE_ANIMATION_DELAY_F 20000 +#define MINIATURIZE_ANIMATION_TWIST_F 0.5 + +/* delays in ms...*/ +#define BALLOON_DELAY 1000 /* ...before balloon is shown */ +#define MENU_SELECT_DELAY 200 /* ...for menu item selection hysteresis */ +#define MENU_JUMP_BACK_DELAY 400 /* ...for jumpback of scrolled menus */ + +/* animation speed constants */ +#define ICON_SLIDE_SLOWDOWN_UF 1 +#define ICON_SLIDE_DELAY_UF 0 +#define ICON_SLIDE_STEPS_UF 50 + +#define ICON_SLIDE_SLOWDOWN_F 3 +#define ICON_SLIDE_DELAY_F 0 +#define ICON_SLIDE_STEPS_F 50 + +#define ICON_SLIDE_SLOWDOWN_M 5 +#define ICON_SLIDE_DELAY_M 0 +#define ICON_SLIDE_STEPS_M 30 + +#define ICON_SLIDE_SLOWDOWN_S 10 +#define ICON_SLIDE_DELAY_S 0 +#define ICON_SLIDE_STEPS_S 20 + +#define ICON_SLIDE_SLOWDOWN_US 20 +#define ICON_SLIDE_DELAY_US 1 +#define ICON_SLIDE_STEPS_US 10 + +/* menu scrolling */ +#define MENU_SCROLL_STEPS_UF 14 +#define MENU_SCROLL_DELAY_UF 1 + +#define MENU_SCROLL_STEPS_F 10 +#define MENU_SCROLL_DELAY_F 5 + +#define MENU_SCROLL_STEPS_M 6 +#define MENU_SCROLL_DELAY_M 5 + +#define MENU_SCROLL_STEPS_S 4 +#define MENU_SCROLL_DELAY_S 6 + +#define MENU_SCROLL_STEPS_US 1 +#define MENU_SCROLL_DELAY_US 8 + +/* shade animation */ +#define SHADE_STEPS_UF 5 +#define SHADE_DELAY_UF 0 + +#define SHADE_STEPS_F 10 +#define SHADE_DELAY_F 0 + +#define SHADE_STEPS_M 15 +#define SHADE_DELAY_M 0 + +#define SHADE_STEPS_S 30 +#define SHADE_DELAY_S 0 + +#define SHADE_STEPS_US 40 +#define SHADE_DELAY_US 10 + +/* workspace name on switch display */ +#define WORKSPACE_NAME_FADE_DELAY 30 +#define WORKSPACE_NAME_DELAY 400 + +/* Delay when cycling colors of selected icons. */ +#define COLOR_CYCLE_DELAY 200 + +/* size of the pieces in the undocked icon explosion */ +#define ICON_KABOOM_PIECE_SIZE 4 + +/* + * Position increment for smart placement: >= 1 + * Raise these values if it's too slow for you + */ +#define PLACETEST_HSTEP 8 +#define PLACETEST_VSTEP 8 + +#define DOCK_EXTRA_SPACE 0 + +/* Vicinity in which an icon can be attached to the clip */ +#define CLIP_ATTACH_VICINITY 1 +#define CLIP_BUTTON_SIZE 23 + +/* The amount of space (in multiples of the icon size) + * a docked icon must be dragged out to detach it */ +#define DOCK_DETTACH_THRESHOLD 3 + +/* Max. number of icons the dock and clip can have */ +#define DOCK_MAX_ICONS 32 + +/* blink interval when invoking a menu item */ +#define MENU_BLINK_DELAY 60000 +#define MENU_BLINK_COUNT 2 +#define CURSOR_BLINK_RATE 300 + +/* how many pixels to move before dragging windows and other objects */ +#define MOVE_THRESHOLD 5 +#define HRESIZE_THRESHOLD 3 + +#define MAX_WORKSPACENAME_WIDTH 64 +/* max width of window title in window list */ +#define MAX_WINDOWLIST_WIDTH 400 + +#ifndef HAVE_INOTIFY +/* Check defaults database for changes every this many milliseconds */ +#define DEFAULTS_CHECK_INTERVAL 2000 +#endif + +#define KEY_CONTROL_WINDOW_WEIGHT 1 + +/* don't put titles in miniwindows */ +#undef NO_MINIWINDOW_TITLES + +/* for boxes with high mouse sampling rates (SGI) */ +#define DELAY_BETWEEN_MOUSE_SAMPLING 10 + +/* + * You should not modify the following values, unless you know + * what you're doing. + */ + +/* number of window shortcuts */ +#define MAX_WINDOW_SHORTCUTS 10 +#define MIN_TITLEFONT_HEIGHT(h) ((h)>14 ? (h) : 14) +#define TITLEBAR_HEIGHT 18 /* window's titlebar height */ +#define RESIZEBAR_HEIGHT 8 /* height of the resizebar */ +#define RESIZEBAR_MIN_WIDTH 20 /* min width of handles-corner_width */ +#define RESIZEBAR_CORNER_WIDTH 28 /* width of the corner of resizebars */ +#define MENU_INDICATOR_SPACE 12 +#define MIN_WINDOW_SIZE 5 /* minimum size for windows */ +#define ICON_WIDTH 64 /* size of the icon window */ +#define ICON_HEIGHT 64 +#define ICON_BORDER_WIDTH 2 +#define MAX_ICON_WIDTH 60 /* size of the icon pixmap */ +#define MAX_ICON_HEIGHT 48 +#define MAX_WORKSPACES 100 +#define MAX_MENU_TEXT_LENGTH 512 +#define MAX_RESTART_ARGS 16 +#define MAX_DEAD_PROCESSES 128 +#define MAXLINE 1024 + +#ifdef _MAX_PATH +# define DEFAULT_PATH_MAX _MAX_PATH +#else +# define DEFAULT_PATH_MAX 512 +#endif + +/* some rules */ +#ifndef USE_XSHAPE +#undef SHAPED_BALLOON +#endif + +#ifdef XKB_MODELOCK +#define KEEP_XKB_LOCK_STATUS +/* This is a hidden feature. + * Choose just one of LANGUAGE_* hints. + * Icon can be changed in def_pixmaps.h. + * More icons are welcome. + */ +#define XKB_BUTTON_HINT +#undef LANGUAGE_TH +#undef LANGUAGE_SK +#endif + +#if defined(HAVE_LIBINTL_H) && defined(I18N) +#include +#define _(text) gettext(text) +/* Use N_() in initializers, it will make xgettext pick + * the string up for translation + */ +#define N_(text) (text) +#if defined(MENU_TEXTDOMAIN) +#define M_(text) dgettext(MENU_TEXTDOMAIN, text) +#else +#define M_(text) (text) +#endif +#else +#define _(text) (text) +#define N_(text) (text) +#define M_(text) (text) +#endif + +#endif /* WMCONFIG_H_ */ + diff --git a/wrlib/tests/.deps/testdraw.Po b/wrlib/tests/.deps/testdraw.Po index 9ce06a8..e69de29 100644 --- a/wrlib/tests/.deps/testdraw.Po +++ b/wrlib/tests/.deps/testdraw.Po @@ -1 +0,0 @@ -# dummy diff --git a/wrlib/tests/.deps/testgrad.Po b/wrlib/tests/.deps/testgrad.Po index 9ce06a8..e69de29 100644 --- a/wrlib/tests/.deps/testgrad.Po +++ b/wrlib/tests/.deps/testgrad.Po @@ -1 +0,0 @@ -# dummy diff --git a/wrlib/tests/.deps/testrot.Po b/wrlib/tests/.deps/testrot.Po index 9ce06a8..e69de29 100644 --- a/wrlib/tests/.deps/testrot.Po +++ b/wrlib/tests/.deps/testrot.Po @@ -1 +0,0 @@ -# dummy diff --git a/wrlib/tests/.deps/view.Po b/wrlib/tests/.deps/view.Po index 9ce06a8..e69de29 100644 --- a/wrlib/tests/.deps/view.Po +++ b/wrlib/tests/.deps/view.Po @@ -1 +0,0 @@ -# dummy