Canvas bei Linux in einer VM

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Lord
Beiträge: 324
Registriert: 21.01.2008 19:11

Canvas bei Linux in einer VM

Beitrag von Lord »

Hallo!

Frage an die Linuxnutzer:

Wie verhält sich bei euch folgender Code:

Code: Alles auswählen

OpenWindow(0, 10, 10, 400, 400, "Canvas-Test")
CanvasGadget(0, 5, 5, 390, 390)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_Gadget
      Select EventType()
        Case #PB_EventType_LeftClick
          SetGadgetAttribute(0, #PB_Canvas_Clip, #True)
          SetWindowTitle(0, "Canvas-Test - LMB")
        Case #PB_EventType_RightClick
          SetGadgetAttribute(0, #PB_Canvas_Clip, #False)
           SetWindowTitle(0, "Canvas-Test - RMB")
     EndSelect
  EndSelect
ForEver
Ich habe Ubuntu 12.04 in VMWare laufen.
Bei obigem Code kann der Mauszeiger nach Drücken der
linken Maustaste das CanvasGadget verlassen.
Lasse ich das Programm auf Windows laufen, kann die
Maus das Gadget nicht verlassen.

Ist das jetzt die VM oder verhält sich das CanvasGadget
in Linux anders als in Windows?
Bild
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Canvas bei Linux in einer VM

Beitrag von bobobo »

verhält sich in einer virtualbox-emulation ubu12.04 (xfce) genauso "falsch"
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Lord
Beiträge: 324
Registriert: 21.01.2008 19:11

Re: Canvas bei Linux in einer VM

Beitrag von Lord »

Hallo bobobo
bobobo hat geschrieben:verhält sich in einer virtualbox-emulation ubu12.04 (xfce) genauso "falsch"
Daß sich das CanvasGadget in einer VM "falsch"
verhält weiß ich ja. Ich will nur wissen, ob es
sich nativ unter Linux (im Gegensatz zu Windows)
eventuell auch "falsch" verhält, ob also die VM
Schuld ist oder nicht.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Canvas bei Linux in einer VM

Beitrag von ts-soft »

Die VM hat da keine Schuld, warum sollte sie auch?
Bei 3D o. ä. mit Hardwarebeschleunigung könnte es evtl. Abweichungen geben, aber
bei solchen Dingen eher nicht :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Canvas bei Linux in einer VM

Beitrag von bobobo »

ff geht aber (Mauszeigerintegration ist dabei natürlich aus)
Linux ist wohl etwas kritischer in der Eventbehandlung

Code: Alles auswählen

OpenWindow(0,10,10,400,400,"Canvas-Gadget")
CanvasGadget(0,50,50,250,250,#PB_Canvas_ClipMouse)
SetGadgetAttribute(0,#PB_Canvas_Clip,#True)
Repeat
  event=WaitWindowEvent()
  etype=EventType()
  gadget=EventGadget()
  Select event
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_Gadget
      Select gadget
        Case 0
          Select etype
            Case #PB_EventType_LeftClick
              c=1
              SetWindowTitle(0,"LMB -clipping on")
            Case #PB_EventType_RightClick
              SetWindowTitle(0,"RMB -clipping off")
              SetGadgetAttribute(0,#PB_Canvas_Clip,#False) ; kann unter Linux merkwürdigerweise auch wegbleiben
              c=0
          EndSelect
      EndSelect
  EndSelect
  
  If GetGadgetAttribute(0,#PB_Canvas_Clip)=#False And c=1
    SetGadgetAttribute(0,#PB_Canvas_Clip,#True)
  EndIf
 
ForEver
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Canvas bei Linux in einer VM

Beitrag von ts-soft »

Der Code von Bobobo funktioniert zwar, aber ich würde keinen Code außerhalb der Ereignisse setzen. IMHO besser wäre es so:

Code: Alles auswählen

OpenWindow(0,10,10,400,400,"Canvas-Gadget")
CanvasGadget(0,50,50,250,250,#PB_Canvas_ClipMouse)
SetGadgetAttribute(0,#PB_Canvas_Clip,#True)
Repeat
  event=WaitWindowEvent()
  etype=EventType()
  gadget=EventGadget()
  Select event
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_Gadget
      Select gadget
        Case 0
          Select etype
            Case #PB_EventType_LeftClick
              c=1
              SetWindowTitle(0,"LMB -clipping on")
            Case #PB_EventType_RightClick
              SetWindowTitle(0,"RMB -clipping off")
              SetGadgetAttribute(0,#PB_Canvas_Clip,#False)
              c=0
          EndSelect
          If GetGadgetAttribute(0,#PB_Canvas_Clip)=#False And c=1
            SetGadgetAttribute(0,#PB_Canvas_Clip,#True)
          EndIf
      EndSelect
  EndSelect
ForEver
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Lord
Beiträge: 324
Registriert: 21.01.2008 19:11

Re: Canvas bei Linux in einer VM

Beitrag von Lord »

Hallo bobobo und ts-soft!

Bei beiden Codes findet in Linux (VM) kein clipping statt!
In Windows funktioniert es.

bobobo, was meinst Du mit: "(Mauszeigerintegration ist
dabei natürlich aus)"?
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Canvas bei Linux in einer VM

Beitrag von ts-soft »

Lord hat geschrieben:bobobo, was meinst Du mit: "(Mauszeigerintegration ist
dabei natürlich aus)"?
Ich bin zwar nicht bobobo, aber die Mauszeigerintegration kann mit Strg+I ausgeschaltet werden. Desweiteren im Menüpunkt Maschine oder in den Einstellungen zur VM!

Mit aktivierter Mauszeigerintegration funktioniert der Code auch nicht mit einer virtuellen
Windows Maschine :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Canvas bei Linux in einer VM

Beitrag von NicTheQuick »

Also hier unter Linux Mint 13 und Mate funktioniert das Clipping.
Im ersten Code von "Lord" kann ich das CanvasGadget nicht verlassen, solange ich die linke Maustaste drücke. Lasse ich sie los, kann ich es wieder verlassen.
In dem Code von ts-soft kann ich nach Klicken der linken Maustaste das CanvasGadget nicht verlassen, auch nachdem ich die Taste los gelassen habe nicht. Dann muss ich erst wieder die rechte Maustaste drücken um das CanvasGadget verlassen zu können.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Canvas bei Linux in einer VM

Beitrag von ts-soft »

NicTheQuick hat geschrieben:In dem Code von ts-soft kann ich nach Klicken der linken Maustaste das CanvasGadget nicht verlassen, auch nachdem ich die Taste los gelassen habe nicht. Dann muss ich erst wieder die rechte Maustaste drücken um das CanvasGadget verlassen zu können.
Und genau so sollte es sein, so ist es unter Windows bereits im erstem Code.
PS: Der Code ist von bobobo, hab nur eine kleine Anpassung vorgenommen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten