Seite 1 von 2
Canvas bei Linux in einer VM
Verfasst: 17.09.2012 16:31
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?
Re: Canvas bei Linux in einer VM
Verfasst: 17.09.2012 18:31
von bobobo
verhält sich in einer virtualbox-emulation ubu12.04 (xfce) genauso "falsch"
Re: Canvas bei Linux in einer VM
Verfasst: 17.09.2012 18:39
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.
Re: Canvas bei Linux in einer VM
Verfasst: 17.09.2012 19:30
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

Re: Canvas bei Linux in einer VM
Verfasst: 17.09.2012 19:52
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
Re: Canvas bei Linux in einer VM
Verfasst: 17.09.2012 19:59
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
Re: Canvas bei Linux in einer VM
Verfasst: 17.09.2012 20:05
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)"?
Re: Canvas bei Linux in einer VM
Verfasst: 17.09.2012 20:28
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

Re: Canvas bei Linux in einer VM
Verfasst: 18.09.2012 00:15
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.
Re: Canvas bei Linux in einer VM
Verfasst: 18.09.2012 00:51
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.