Skip to contentSkip to conversation

mouse grabbing gotcha (was: dosemu 1.1.3.9 user report)

DISCUSSION Stas Sergeev 1 participant 1 message Dec 17, 2002

lore
Share & tools
lore
#0 lore raw

Hello.

Quoted 2 lines · Bart Oldeman
Quoted 1 line

default "Home" should be changed.

Pause is already taken as being a force pause (freeze).

But it doesn't actually work, it just lock up dosemu in a non-TSC mode unless the attached patch is applied.

Quoted 2 lines

One problem is that you can define just about any keycombo in some of these window managers, so there is nothing that works everywhere;

Well, there are either the combos that are always reserved by some WMs, and those can and should be avoided.

Quoted 1 line

however some combinations are used more often than others.

User-defined combos is not something we have to care about, that was not what I mean.

Quoted 2 lines

ctrl+alt+scroll_lock might be something that makes sense though, since you're locking the mouse.

The only disadvantage of it is that it switches a scroll-lock led:)

Quoted 1 line

For KDE I have ctrl+alt+esc (kill), ctrl+alt+del (logout).

And you'll probably never know what other combos it already reserved without you even asking it about:) I think dosemu can avoid using those.

emu-i386/cputime.c +3 -4
@@ -181,7 +181,6 @@
      * but only flags processing (& other features) */
     RAWcpuTIME = rawP5time;		/* in usecs */
     GETcpuTIME = getP5time;		/* in usecs */
-    ZeroTimeBase.td = GETTSC();		/* in CPU cycles */
     g_printf("TIMER: using pentium timing\n");
   }
   else {
@@ -189,7 +188,6 @@
      * 'rdtsc off' into config file */
     RAWcpuTIME = rawC4time;		/* in usecs */
     GETcpuTIME = getC4time;		/* in usecs */
-    ZeroTimeBase.td = rawC4time();	/* in usecs */
     if (config.realcpu) {
       if (kernel_version_code < 0x2017e)
         g_printf("TIMER: using gettimeofday\n");
@@ -197,6 +195,7 @@
         g_printf("TIMER: using new gettimeofday with microsecond resolution\n");
     }
   }
+  ZeroTimeBase.td = RAWcpuTIME();
 }
 
 
@@ -208,7 +207,7 @@
   if (cpu_time_stop) return 1;
   if (!quiet) dbug_printf("STOP TIME\n");
   StopTimeBase = RAWcpuTIME();
-  LastTimeRead = StopTimeBase - TSCtoUS(ZeroTimeBase.td);
+  LastTimeRead = StopTimeBase - ZeroTimeBase.td;
   cpu_time_stop = 1;
   return 0;
 }
@@ -218,7 +217,7 @@
 {
   if (!cpu_time_stop) return 1;
   if (!quiet) dbug_printf("RESTART TIME\n");
-  ZeroTimeBase.td += ((RAWcpuTIME() - StopTimeBase) * config.CPUSpeedInMhz);
+  ZeroTimeBase.td += RAWcpuTIME() - StopTimeBase;
   cpu_time_stop = 0;
   return 0;
 }