changeset 34:e4d290aaa7ed

Use pointers to X event structs to avoid copying them.
author Jordan Miner <jminer7@gmail.com>
date Sat, 25 Jul 2009 22:50:45 -0500
parents 329ce1001936
children ee9a564d2814
files dynamin/gui/x_window.d
diffstat 1 files changed, 7 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/dynamin/gui/x_window.d	Sat Jul 25 22:49:17 2009 -0500
+++ b/dynamin/gui/x_window.d	Sat Jul 25 22:50:45 2009 -0500
@@ -277,7 +277,7 @@
 			//{{{ helper functions
 			void createMouseEvent(void delegate(MouseEventArgs args) func) {
 				MouseButton button;
-				auto buttonEv = ev.xbutton;
+				auto buttonEv = &ev.xbutton;
 				switch(buttonEv.button) {
 				case 1: button = MouseButton.Left; break;
 				case 2: button = MouseButton.Middle; break;
@@ -304,7 +304,7 @@
 				setControl(evWindow, null);
 				break;
 			case ClientMessage:
-				auto clientEv = ev.xclient;
+				auto clientEv = &ev.xclient;
 				if(clientEv.message_type != XA.WM_PROTOCOLS)
 					break;
 				if(clientEv.data.l[0] == XA.WM_DELETE_WINDOW) {
@@ -358,7 +358,7 @@
 				createMouseEvent((MouseEventArgs args) { c.mouseUp(args); });
 				break;
 			case MotionNotify:
-				auto motionEv = ev.xmotion;
+				auto motionEv = &ev.xmotion;
 				Control captor = getCaptorControl();
 				Point pt = Point(motionEv.x+c.borderSize.left, motionEv.y+c.borderSize.top);
 				if(captor)
@@ -373,7 +373,7 @@
 					captor.mouseMoved(args);
 				break;
 			case EnterNotify:
-				auto enterEv = ev.xcrossing;
+				auto enterEv = &ev.xcrossing;
 				scope args = new MouseEventArgs(enterEv.x+c.borderSize.left,
 					enterEv.y+c.borderSize.top, MouseButton.None);
 				c.mouseMoved(args);
@@ -390,18 +390,18 @@
 				PaintQueue.add(c, exposeEv.x, exposeEv.y, exposeEv.width, exposeEv.height);
 				break;
 			case PropertyNotify:
-				auto propertyEv = ev.xproperty;
+				auto propertyEv = &ev.xproperty;
 				if(propertyEv.atom == XA._NET_FRAME_EXTENTS &&
 					propertyEv.state != PropertyDelete)
 					c.backend_nativeToBorderSize();
 				break;
 			case ConfigureNotify:
-				auto configureEv = ev.xconfigure;
+				auto configureEv = &ev.xconfigure;
 				c.repaint();
 				c.backend_nativeToLocationSize();
 				break;
 			case SelectionRequest:
-				auto selReqEv = ev.xselectionrequest;
+				auto selReqEv = &ev.xselectionrequest;
 				XEvent fullEv;
 				auto selEv = &fullEv.xselection;
 				selEv.type = SelectionNotify;