- improvements from Mathias Panzenböck (panzi) patch [#19695], which avoid conversion...
authorCampbell Barton <ideasman42@gmail.com>
Wed, 21 Oct 2009 07:56:08 +0000 (07:56 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 21 Oct 2009 07:56:08 +0000 (07:56 +0000)
- [#19698] Add Menu Item: View3d -> Object -> Move to layer
  from Howard Brooks (hbroo)
- had cursor grab commented by mistake for X11

intern/ghost/intern/GHOST_WindowX11.cpp
release/scripts/modules/bpy_ops.py
release/scripts/ui/space_view3d.py

index 3459f2fcc949e03d0ca93e3923546e1685a58346..d9c2654f446f86960d133aceaf5fac38f51fa942 100644 (file)
@@ -1412,7 +1412,7 @@ setWindowCursorGrab(
                                setWindowCursorVisibility(false);
 
                }
-               //XGrabPointer(m_display, m_window, True, ButtonPressMask| ButtonReleaseMask|PointerMotionMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime);
+               XGrabPointer(m_display, m_window, True, ButtonPressMask| ButtonReleaseMask|PointerMotionMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime);
        }
        else {
                if (m_cursorGrab==GHOST_kGrabHide) {
@@ -1430,7 +1430,7 @@ setWindowCursorGrab(
                /* Almost works without but important otherwise the mouse GHOST location can be incorrect on exit */
                setCursorGrabAccum(0, 0);
                m_cursorGrabBounds.m_l= m_cursorGrabBounds.m_r= -1; /* disable */
-               //XUngrabPointer(m_display, CurrentTime);
+               XUngrabPointer(m_display, CurrentTime);
        }
 
        XFlush(m_display);
index 6772a3771cb9f614434e8501f51cf59604336b05..61c6dc24ad73d33f72c42b3a34da8a39c3813918 100644 (file)
@@ -155,50 +155,44 @@ class MESH_OT_delete_edgeloop(bpy.types.Operator):
 
 rna_path_prop = bpy.props.StringProperty(attr="path", name="Context Attributes", description="rna context string", maxlen= 1024, default= "")
 
+def execute_context_assign(self, context):
+       exec("context.%s=self.value" % self.path)
+       return ('FINISHED',)
+
 class WM_OT_context_set_boolean(bpy.types.Operator):
        '''Set a context value.'''
        __idname__ = "wm.context_set_boolean"
        __label__ = "Context Set"
        __props__ = [rna_path_prop, bpy.props.BoolProperty(attr="value", name="Value", description="Assignment value", default= True)]
-       def execute(self, context):
-               exec("context.%s=%s" % (self.path, self.value)) # security nuts will complain.
-               return ('FINISHED',)
+       execute = execute_context_assign
 
 class WM_OT_context_set_int(bpy.types.Operator): # same as enum
        '''Set a context value.'''
        __idname__ = "wm.context_set_int"
        __label__ = "Context Set"
        __props__ = [rna_path_prop, bpy.props.IntProperty(attr="value", name="Value", description="Assignment value", default= 0)]
-       def execute(self, context):
-               exec("context.%s=%d" % (self.path, self.value)) # security nuts will complain.
-               return ('FINISHED',)
+       execute = execute_context_assign
                
 class WM_OT_context_set_float(bpy.types.Operator): # same as enum
        '''Set a context value.'''
        __idname__ = "wm.context_set_int"
        __label__ = "Context Set"
        __props__ = [rna_path_prop, bpy.props.FloatProperty(attr="value", name="Value", description="Assignment value", default= 0.0)]
-       def execute(self, context):
-               exec("context.%s=%f" % (self.path, self.value)) # security nuts will complain.
-               return ('FINISHED',)
+       execute = execute_context_assign
 
 class WM_OT_context_set_string(bpy.types.Operator): # same as enum
        '''Set a context value.'''
        __idname__ = "wm.context_set_string"
        __label__ = "Context Set"
        __props__ = [rna_path_prop, bpy.props.StringProperty(attr="value", name="Value", description="Assignment value", maxlen= 1024, default= "")]
-       def execute(self, context):
-               exec("context.%s='%s'" % (self.path, self.value)) # security nuts will complain.
-               return ('FINISHED',)
+       execute = execute_context_assign
 
 class WM_OT_context_set_enum(bpy.types.Operator):
        '''Set a context value.'''
        __idname__ = "wm.context_set_enum"
        __label__ = "Context Set"
        __props__ = [rna_path_prop, bpy.props.StringProperty(attr="value", name="Value", description="Assignment value (as a string)", maxlen= 1024, default= "")]
-       def execute(self, context):
-               exec("context.%s='%s'" % (self.path, self.value)) # security nuts will complain.
-               return ('FINISHED',)
+       execute = execute_context_assign
 
 class WM_OT_context_toggle(bpy.types.Operator):
        '''Toggle a context value.'''
index eae97febf14ffe425e68fb4785ed38adec623d32..689250d0c4523c73ace89fa14714fd9cec9a8d1a 100644 (file)
@@ -427,6 +427,7 @@ class VIEW3D_MT_object(bpy.types.Menu):
                
                layout.itemS()
                
+               layout.itemO("object.move_to_layer", text="Move to Layer...")
                layout.itemM("VIEW3D_MT_object_showhide")
                
                layout.item_menu_enumO("object.convert", "target")