forked from pool/xorg-x11-server
Stefan Dirsch
6ff43929b0
- Added xorg-xserver-e89edec497ba.patch to fix incompatible pointer type error with GCC 14. If the request is OK, please forward it to Factory soon too so that we can switch the default compiler. Thanks! OBS-URL: https://build.opensuse.org/request/show/1189636 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=891
94 lines
3.4 KiB
Diff
94 lines
3.4 KiB
Diff
From: Luc Verhaegen <lverhaegen@suse.de>
|
|
|
|
Handle 'Zap' - Ctrl-Alt-Backspace more gracefully
|
|
|
|
To avoid accidental zapping of the Xserver warn after
|
|
the first ctrl-alt-backspace by emitting a beep. Only
|
|
Zap the server if a second ctrl-alt-backspace is sent
|
|
within 2 seconds.
|
|
This can be enabled with a new option flag "ZapWarning"
|
|
|
|
Index: xorg-server-21.1.0/hw/xfree86/common/xf86Config.c
|
|
===================================================================
|
|
--- xorg-server-21.1.0.orig/hw/xfree86/common/xf86Config.c
|
|
+++ xorg-server-21.1.0/hw/xfree86/common/xf86Config.c
|
|
@@ -621,6 +621,7 @@ configFiles(XF86ConfFilesPtr fileconf)
|
|
typedef enum {
|
|
FLAG_DONTVTSWITCH,
|
|
FLAG_DONTZAP,
|
|
+ FLAG_ZAPWARNING,
|
|
FLAG_DONTZOOM,
|
|
FLAG_DISABLEVIDMODE,
|
|
FLAG_ALLOWNONLOCAL,
|
|
@@ -657,6 +658,8 @@ static OptionInfoRec FlagOptions[] = {
|
|
{0}, FALSE},
|
|
{FLAG_DONTZAP, "DontZap", OPTV_BOOLEAN,
|
|
{0}, FALSE},
|
|
+ { FLAG_ZAPWARNING, "ZapWarning", OPTV_BOOLEAN,
|
|
+ {0}, FALSE },
|
|
{FLAG_DONTZOOM, "DontZoom", OPTV_BOOLEAN,
|
|
{0}, FALSE},
|
|
{FLAG_DISABLEVIDMODE, "DisableVidModeExtension", OPTV_BOOLEAN,
|
|
@@ -739,6 +742,7 @@ configServerFlags(XF86ConfFlagsPtr flags
|
|
|
|
xf86GetOptValBool(FlagOptions, FLAG_DONTVTSWITCH, &xf86Info.dontVTSwitch);
|
|
xf86GetOptValBool(FlagOptions, FLAG_DONTZAP, &xf86Info.dontZap);
|
|
+ xf86GetOptValBool(FlagOptions, FLAG_ZAPWARNING, &xf86Info.ZapWarning);
|
|
xf86GetOptValBool(FlagOptions, FLAG_DONTZOOM, &xf86Info.dontZoom);
|
|
|
|
xf86GetOptValBool(FlagOptions, FLAG_IGNORE_ABI, &xf86Info.ignoreABI);
|
|
Index: xorg-server-21.1.0/hw/xfree86/common/xf86Events.c
|
|
===================================================================
|
|
--- xorg-server-21.1.0.orig/hw/xfree86/common/xf86Events.c
|
|
+++ xorg-server-21.1.0/hw/xfree86/common/xf86Events.c
|
|
@@ -158,10 +158,22 @@ xf86ProcessActionEvent(ActionEvent actio
|
|
DebugF("ProcessActionEvent(%d,%p)\n", (int) action, arg);
|
|
switch (action) {
|
|
case ACTION_TERMINATE:
|
|
- if (!xf86Info.dontZap) {
|
|
- xf86Msg(X_INFO, "Server zapped. Shutting down.\n");
|
|
- GiveUp(0);
|
|
+ if (xf86Info.dontZap)
|
|
+ break;
|
|
+
|
|
+ if (xf86Info.ZapWarning) {
|
|
+ static struct timeval LastZap = { 0, 0};
|
|
+ struct timeval NewZap;
|
|
+
|
|
+ gettimeofday(&NewZap, NULL);
|
|
+
|
|
+ if ((NewZap.tv_sec - LastZap.tv_sec) >= 2) {
|
|
+ xf86OSRingBell(30, 1000, 50);
|
|
+ LastZap = NewZap;
|
|
+ break;
|
|
+ }
|
|
}
|
|
+ GiveUp(0);
|
|
break;
|
|
case ACTION_NEXT_MODE:
|
|
if (!xf86Info.dontZoom)
|
|
Index: xorg-server-21.1.0/hw/xfree86/common/xf86Globals.c
|
|
===================================================================
|
|
--- xorg-server-21.1.0.orig/hw/xfree86/common/xf86Globals.c
|
|
+++ xorg-server-21.1.0/hw/xfree86/common/xf86Globals.c
|
|
@@ -107,6 +107,7 @@ xf86InfoRec xf86Info = {
|
|
.autoVTSwitch = TRUE,
|
|
.ShareVTs = FALSE,
|
|
.dontZap = FALSE,
|
|
+ .ZapWarning = TRUE,
|
|
.dontZoom = FALSE,
|
|
.currentScreen = NULL,
|
|
#ifdef CSRG_BASED
|
|
Index: xorg-server-21.1.0/hw/xfree86/common/xf86Privstr.h
|
|
===================================================================
|
|
--- xorg-server-21.1.0.orig/hw/xfree86/common/xf86Privstr.h
|
|
+++ xorg-server-21.1.0/hw/xfree86/common/xf86Privstr.h
|
|
@@ -62,6 +62,7 @@ typedef struct {
|
|
Bool autoVTSwitch;
|
|
Bool ShareVTs;
|
|
Bool dontZap;
|
|
+ Bool ZapWarning;
|
|
Bool dontZoom;
|
|
|
|
/* graphics part */
|