kwin/src
Vlad Zahorodnii b3214db0b7 x11: Make damage region fetching code more robust to errors
With DamageReportNonEmpty damage report level, the x server will
send kwin a DamageNotify when the damage region changes from empty to
not empty.

The damage region will be made empty when SurfaceItemX11 calls
xcb_damage_subtract().

It appears like xcb_generate_id() can return us an already associated
XID, which eventually results in xcb_damage_subtract() failing and
breaking state tracking in SurfaceItemX11. KWin will no longer receive
DamageNotify events and some windows will freeze.

In order to make getting BadIdChoice less catastrophic, this change
makes the SurfaceItemX11 reset m_isDamaged after successfully fetching
the damage region. If xcb_generate_id() returns us a bad id, kwin will
try to fetch the damage again in the next frame.

BUG: 456511
2022-10-05 10:10:25 +03:00
..
3rdparty
backends backends/drm: also force linear layout for dumb buffer cursors 2022-10-04 07:33:59 +00:00
colors Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
core Lower severity of "Got invalid timestamp" message 2022-09-20 10:59:08 +03:00
decorations move DecorationBridge singleton into Workspace 2022-07-21 15:24:57 +02:00
effects effects/fullscreen: Prevent playing animation for invisible windows 2022-10-04 14:14:40 +00:00
helpers Remove no longer needed ifdefs 2022-08-17 07:59:46 +02:00
kcmkwin Use POSITION_INDEPENDENT_CODE for static lib for helping to build against qt6 2022-10-04 08:28:40 +02:00
libkwineffects effects: bump minor version 2022-09-27 08:57:20 +00:00
platformsupport Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
plugins SVN_SILENT made messages (.desktop file) - always resolve ours 2022-09-28 01:57:42 +00:00
qml
scenes Fix truncation in quad clipping 2022-09-14 14:21:33 +00:00
scripting scripting: Add js object <-> QRectF/QSizeF/QPointF conversion helpers 2022-09-19 13:58:44 +00:00
scripts SVN_SILENT made messages (.desktop file) - always resolve ours 2022-09-28 01:57:42 +00:00
tabbox SVN_SILENT made messages (.desktop file) - always resolve ours 2022-09-28 01:57:42 +00:00
utils Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
wayland Disable PrimarySelection in seat setPrimarySelection 2022-09-29 10:32:03 +00:00
xwayland Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
activation.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
activities.cpp Sync activities after kwin restart 2022-09-30 07:10:50 +00:00
activities.h Sync activities after kwin restart 2022-09-30 07:10:50 +00:00
appmenu.cpp move DecorationBridge singleton into Workspace 2022-07-21 15:24:57 +02:00
appmenu.h move ApplicationMenu singleton into Workspace 2022-07-21 15:24:57 +02:00
atoms.cpp Fetch and parse EDIDs on X11 2022-07-20 07:01:05 +00:00
atoms.h Fetch and parse EDIDs on X11 2022-07-20 07:01:05 +00:00
client_machine.cpp core: port a few things away from manual memory management 2022-07-19 08:42:22 +00:00
client_machine.h core: port a few things away from manual memory management 2022-07-19 08:42:22 +00:00
CMakeLists.txt Use POSITION_INDEPENDENT_CODE for static lib for helping to build against qt6 2022-10-04 08:28:40 +02:00
composite.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
composite.h replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
config-kwin.h.cmake utils: Introduce RamFile class for memfd 2022-08-19 15:26:22 +02:00
cursor.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
cursor.h Use floating geometry throughout 2022-07-14 10:04:46 +01:00
cursordelegate_opengl.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
cursordelegate_opengl.h Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
cursordelegate_qpainter.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
cursordelegate_qpainter.h Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
dbusinterface.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
dbusinterface.h Expose Workspace::showingDesktop and a setter as D-Bus api 2022-07-29 09:52:16 +00:00
debug_console.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
debug_console.h tablet: Send libinput timestamp as the time 2022-09-05 20:37:40 +00:00
debug_console.ui
decorationitem.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
decorationitem.h replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
deleted.cpp Use floating geometry throughout 2022-07-14 10:04:46 +01:00
deleted.h window: make resizeWithChecks not modify any window state 2022-08-31 11:32:30 +00:00
dmabuftexture.cpp dmabuf: make use of FileDescriptor class 2022-08-11 21:27:33 +02:00
dmabuftexture.h Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
dpmsinputeventfilter.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
dpmsinputeventfilter.h
effectloader.cpp
effectloader.h
effects.cpp Revert "Merge gesture structs/enums" 2022-09-11 13:14:11 +03:00
effects.h Add missing QPointer 2022-09-16 11:44:53 +00:00
events.cpp Restore the crossfade effect 2022-09-07 10:16:36 +00:00
focuschain.cpp move FocusChain singleton into Workspace 2022-07-21 15:16:40 +02:00
focuschain.h move FocusChain singleton into Workspace 2022-07-21 15:16:40 +02:00
ftrace.cpp
ftrace.h replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
gestures.cpp Revert "Merge gesture structs/enums" 2022-09-11 13:14:11 +03:00
gestures.h Revert "Merge gesture structs/enums" 2022-09-11 13:14:11 +03:00
globalshortcuts.cpp Revert "Merge gesture structs/enums" 2022-09-11 13:14:11 +03:00
globalshortcuts.h Revert "Merge gesture structs/enums" 2022-09-11 13:14:11 +03:00
group.cpp core: port a few things away from manual memory management 2022-07-19 08:42:22 +00:00
group.h core: port a few things away from manual memory management 2022-07-19 08:42:22 +00:00
hide_cursor_spy.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
hide_cursor_spy.h
idle_inhibition.cpp
idle_inhibition.h
idledetector.cpp Make IdleDetector not emit resumed signal when it's inhibited 2022-07-05 20:36:04 +00:00
idledetector.h Make IdleDetector not emit resumed signal when it's inhibited 2022-07-05 20:36:04 +00:00
input.cpp Revert "Merge gesture structs/enums" 2022-09-11 13:14:11 +03:00
input.h Revert "Merge gesture structs/enums" 2022-09-11 13:14:11 +03:00
input_event.cpp
input_event.h libinput: Include the Pad name in the TabletPadId 2022-09-05 20:37:40 +00:00
input_event_spy.cpp tablet: Send libinput timestamp as the time 2022-09-05 20:37:40 +00:00
input_event_spy.h tablet: Send libinput timestamp as the time 2022-09-05 20:37:40 +00:00
inputmethod.cpp inputpanelv1window: fix showing and hiding 2022-09-24 20:21:48 +00:00
inputmethod.h inputpanelv1window: fix showing and hiding 2022-09-24 20:21:48 +00:00
inputpanelv1integration.cpp
inputpanelv1integration.h
inputpanelv1window.cpp inputpanel: Do not start a display process while shutting the panel down 2022-09-24 20:21:48 +00:00
inputpanelv1window.h inputpanelv1window: fix showing and hiding 2022-09-24 20:21:48 +00:00
internalwindow.cpp Restore the crossfade effect 2022-09-07 10:16:36 +00:00
internalwindow.h window: make resizeWithChecks not modify any window state 2022-08-31 11:32:30 +00:00
item.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
item.h Use floating geometry throughout 2022-07-14 10:04:46 +01:00
keyboard_input.cpp replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
keyboard_input.h replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
keyboard_layout.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
keyboard_layout.h core: port a few things away from manual memory management 2022-07-19 08:42:22 +00:00
keyboard_layout_switching.cpp core: port a few things away from manual memory management 2022-07-19 08:42:22 +00:00
keyboard_layout_switching.h core: port a few things away from manual memory management 2022-07-19 08:42:22 +00:00
keyboard_repeat.cpp
keyboard_repeat.h
killwindow.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
killwindow.h
kwin.kcfg X11 backend: Retry enabling compositing when it was disabled a while ago 2022-09-27 10:23:04 +00:00
kwin.notifyrc SVN_SILENT made messages (.desktop file) - always resolve ours 2022-09-28 01:57:42 +00:00
kwineglutils_p.h
layers.cpp screenedge: move singleton to Workspace 2022-08-02 21:37:41 +00:00
layershellv1integration.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
layershellv1integration.h
layershellv1window.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
layershellv1window.h Use floating geometry throughout 2022-07-14 10:04:46 +01:00
linux_dmabuf.cpp dmabuf: make use of FileDescriptor class 2022-08-11 21:27:33 +02:00
linux_dmabuf.h dmabuf: make use of FileDescriptor class 2022-08-11 21:27:33 +02:00
main.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
main.h xwaylandinterface: move global to Application 2022-08-08 09:16:22 +00:00
main_wayland.cpp Disable PrimarySelection in seat setPrimarySelection 2022-09-29 10:32:03 +00:00
main_wayland.h xwaylandinterface: move global to Application 2022-08-08 09:16:22 +00:00
main_x11.cpp Fix handling of different signals (SIGTERM et al) by using KSignalHandler 2022-09-15 15:35:03 +00:00
main_x11.h replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
Messages.sh
modifier_only_shortcuts.cpp screenlockerwatcher: move singleton to Application 2022-08-02 21:37:41 +00:00
modifier_only_shortcuts.h
mousebuttons.cpp libinput/device: Use button mapping that is used in input handling for supported buttons 2022-08-24 08:44:31 +00:00
mousebuttons.h libinput/device: Use button mapping that is used in input handling for supported buttons 2022-08-24 08:44:31 +00:00
moving_client_x11_filter.cpp
moving_client_x11_filter.h
netinfo.cpp Use correct geometry in GTKShowWindowMenu 2022-08-09 06:59:13 +00:00
netinfo.h core: port a few things away from manual memory management 2022-07-19 08:42:22 +00:00
onscreennotification.cpp replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
onscreennotification.h replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
options.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
options.h Move placement policy enum in KWin namespace 2022-09-05 14:11:42 +00:00
org.kde.kappmenu.xml
org.kde.kwin.Compositing.xml
org.kde.kwin.Effects.xml
org.kde.KWin.Plugins.xml
org.kde.KWin.Session.xml
org.kde.KWin.VirtualDesktopManager.xml
org.kde.KWin.xml Expose Workspace::showingDesktop and a setter as D-Bus api 2022-07-29 09:52:16 +00:00
osd.cpp
osd.h
outline.cpp backends/x11: port away from most remaining manual memory management 2022-09-12 20:55:32 +00:00
outline.h backends/x11: port away from most remaining manual memory management 2022-09-12 20:55:32 +00:00
placeholderinputeventfilter.cpp backends/drm: move placeholder output management to Workspace 2022-08-27 20:30:27 +02:00
placeholderinputeventfilter.h backends/drm: move placeholder output management to Workspace 2022-08-27 20:30:27 +02:00
placeholderoutput.cpp Add dummy placeholder output type 2022-09-06 10:36:33 +00:00
placeholderoutput.h Add dummy placeholder output type 2022-09-06 10:36:33 +00:00
placement.cpp Ensure move() calls in placement move in integer values 2022-09-14 09:00:47 +00:00
placement.h Move placement policy enum in KWin namespace 2022-09-05 14:11:42 +00:00
placementtracker.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
placementtracker.h workspace: restore window position after output changes 2022-08-31 22:30:13 +02:00
plugin.cpp manage plugins with std::unique_ptr 2022-07-19 08:42:22 +00:00
plugin.h plugin: Use kwin_export.h instead of kwinglobals.h 2022-08-04 11:44:48 +02:00
pluginmanager.cpp replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
pluginmanager.h move PluginManager singleton to Application 2022-07-21 15:16:40 +02:00
pointer_input.cpp Fix clamping in screenContainsPos 2022-09-26 10:37:53 +01:00
pointer_input.h Move xcursortheme.{h,cpp} to utils/ 2022-09-02 11:06:49 +00:00
popup_input_filter.cpp Use floating geometry throughout 2022-07-14 10:04:46 +01:00
popup_input_filter.h
rootinfo_filter.cpp
rootinfo_filter.h
rulebooksettings.cpp
rulebooksettings.h
rulebooksettingsbase.kcfg
rulebooksettingsbase.kcfgc
rules.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
rules.h Move placement policy enum in KWin namespace 2022-09-05 14:11:42 +00:00
rulesettings.kcfg Move placement policy enum in KWin namespace 2022-09-05 14:11:42 +00:00
rulesettings.kcfgc Move placement policy enum in KWin namespace 2022-09-05 14:11:42 +00:00
scene.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
scene.h Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
screenedge.cpp Reset the count while the user keeps moving the mouse 2022-09-13 17:26:09 +00:00
screenedge.h screenedge: move singleton to Workspace 2022-08-02 21:37:41 +00:00
screenlockerwatcher.cpp screenlockerwatcher: move singleton to Application 2022-08-02 21:37:41 +00:00
screenlockerwatcher.h screenlockerwatcher: move singleton to Application 2022-08-02 21:37:41 +00:00
screens.cpp Make Workspace process batched output updates 2022-09-12 08:03:48 +00:00
screens.h Drop Screens::geometry() and Screens::size() 2022-08-27 13:51:37 +03:00
settings.kcfgc Move placement policy enum in KWin namespace 2022-09-05 14:11:42 +00:00
shadow.cpp
shadow.h Use floating geometry throughout 2022-07-14 10:04:46 +01:00
shadowitem.cpp Use floating geometry throughout 2022-07-14 10:04:46 +01:00
shadowitem.h
shortcutdialog.ui
sm.cpp rulebook: move singleton to Workspace 2022-08-02 21:37:41 +00:00
sm.h
surfaceitem.cpp SurfaceItem: Use pixmap() for quad generation 2022-07-28 14:15:44 +00:00
surfaceitem.h Use floating geometry throughout 2022-07-14 10:04:46 +01:00
surfaceitem_internal.cpp Properly set m_size when updating SurfacePixmap{Wayland,Internal} 2022-07-14 11:34:45 +02:00
surfaceitem_internal.h Use floating geometry throughout 2022-07-14 10:04:46 +01:00
surfaceitem_wayland.cpp Properly set m_size when updating SurfacePixmap{Wayland,Internal} 2022-07-14 11:34:45 +02:00
surfaceitem_wayland.h
surfaceitem_x11.cpp x11: Make damage region fetching code more robust to errors 2022-10-05 10:10:25 +03:00
surfaceitem_x11.h Use floating geometry throughout 2022-07-14 10:04:46 +01:00
syncalarmx11filter.cpp
syncalarmx11filter.h
tablet_input.cpp tablet: Send libinput timestamp as the time 2022-09-05 20:37:40 +00:00
tablet_input.h tablet: Send libinput timestamp as the time 2022-09-05 20:37:40 +00:00
tabletmodemanager.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
tabletmodemanager.h tabletmodemanager: move global to Application 2022-08-08 09:16:22 +00:00
touch_input.cpp Drop multiple point rounding in input code 2022-07-14 11:39:00 +00:00
touch_input.h
unmanaged.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
unmanaged.h window: make resizeWithChecks not modify any window state 2022-08-31 11:32:30 +00:00
useractions.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
useractions.h Fix activity swtiching through UserActions menu 2022-07-27 12:20:50 +00:00
virtualdesktops.cpp Revert "Merge gesture structs/enums" 2022-09-11 13:14:11 +03:00
virtualdesktops.h replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
virtualdesktopsdbustypes.cpp
virtualdesktopsdbustypes.h
virtualkeyboard_dbus.cpp inputmethod: Allow forcing the display of the input method 2022-09-08 23:30:16 +02:00
virtualkeyboard_dbus.h inputmethod: Allow forcing the display of the input method 2022-09-08 23:30:16 +02:00
was_user_interaction_x11_filter.cpp
was_user_interaction_x11_filter.h
wayland_server.cpp Disable PrimarySelection in seat setPrimarySelection 2022-09-29 10:32:03 +00:00
wayland_server.h Disable PrimarySelection in seat setPrimarySelection 2022-09-29 10:32:03 +00:00
waylandoutput.cpp wayland: Implement wl_output version 4 2022-09-05 14:37:10 +03:00
waylandoutput.h Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
waylandshellintegration.cpp
waylandshellintegration.h
waylandwindow.cpp Remove unused core/platform.h includes 2022-09-06 11:21:40 +03:00
waylandwindow.h window: make resizeWithChecks not modify any window state 2022-08-31 11:32:30 +00:00
window.cpp Sync activities after kwin restart 2022-09-30 07:10:50 +00:00
window.h Sync activities after kwin restart 2022-09-30 07:10:50 +00:00
window_property_notify_x11_filter.cpp
window_property_notify_x11_filter.h
windowitem.cpp Make it possible to raise windows on top of the lockscreen 2022-09-02 10:48:49 +00:00
windowitem.h replace all uses of QScopedPointer with std::unique_ptr 2022-08-04 12:30:09 +00:00
workspace.cpp Reset m_delayFocusWindow in Workspace::cancelDelayFocus() 2022-10-05 06:38:25 +00:00
workspace.h Don't check for workspace->initializing() 2022-09-16 09:57:07 +00:00
x11eventfilter.cpp
x11eventfilter.h
x11syncmanager.cpp Move multi-purpose code in its own directory 2022-09-06 11:21:40 +03:00
x11syncmanager.h
x11window.cpp [x11window] Remove duplicate activities check 2022-09-30 07:10:50 +00:00
x11window.h Sync activities after kwin restart 2022-09-30 07:10:50 +00:00
xdgactivationv1.cpp Make it possible to raise windows on top of the lockscreen 2022-09-02 10:48:49 +00:00
xdgactivationv1.h
xdgshellintegration.cpp
xdgshellintegration.h
xdgshellwindow.cpp Emit clientMaximizedStateAboutToChange when maximized mode is actually about to change 2022-09-22 12:16:56 +00:00
xdgshellwindow.h Refactor geometry handling in interactive move/resize handling func 2022-08-31 10:05:21 +03:00
xkb.cpp Don't try to create a QChar from a non-char key enum 2022-10-03 09:12:19 +00:00
xkb.h Move keycodeForKeysym from ButtonRebindsFilter into Xkb 2022-09-01 14:41:51 +00:00
xwaylandwindow.cpp wayland: Setup window management when starting to manage X11 window 2022-08-11 07:21:12 +00:00
xwaylandwindow.h