Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions operators.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,16 +131,20 @@ def execute(self, context):
addon_prefs = preferences.addons[__package__].preferences
enable_nodes = addon_prefs.enable_for_node_editors
disable_camera = addon_prefs.disable_camera_navigation
navigation_mode = addon_prefs.navigation_mode

space_type = context.space_data.type

# Execute is the first thing called in our operator, so we start by
# calling Blender's built-in Walk Navigation
# calling the appropriate navigation based on user preference
if space_type == "VIEW_3D":
view = context.space_data.region_3d.view_perspective
if not (view == "CAMERA" and disable_camera):
try:
bpy.ops.view3d.walk("INVOKE_DEFAULT")
if navigation_mode == "ORBIT":
bpy.ops.view3d.rotate("INVOKE_DEFAULT")
else:
bpy.ops.view3d.walk("INVOKE_DEFAULT")
# Adding the timer and starting the loop
wm = context.window_manager
self._timer = wm.event_timer_add(0.1, window=context.window)
Expand Down
16 changes: 16 additions & 0 deletions preferences.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import bpy
from bpy.props import (
BoolProperty,
EnumProperty,
FloatProperty,
)
from bpy.types import AddonPreferences
Expand Down Expand Up @@ -51,6 +52,16 @@ def update_node_keymap(self, context):
class RightMouseNavigationPreferences(AddonPreferences):
bl_idname = __package__

navigation_mode: EnumProperty(
name="Navigation Mode",
description="Choose how right-click drag navigates the viewport",
items=[
("WALK", "Walk", "First-person walk navigation (default Blender behavior)"),
("ORBIT", "Orbit", "Orbit around view center (like middle-mouse-button)"),
],
default="WALK",
)

time: FloatProperty(
name="Time Threshold",
description="How long you have hold right mouse to open menu",
Expand Down Expand Up @@ -98,8 +109,13 @@ def draw(self, context):

row = layout.row()
box = row.box()
box.label(text="Navigation", icon="ORIENTATION_GIMBAL")
box.prop(self, "navigation_mode")
box = row.box()
box.label(text="Menu / Movement", icon="DRIVER_DISTANCE")
box.prop(self, "time")

row = layout.row()
box = row.box()
box.label(text="Node Editor", icon="NODETREE")
box.prop(self, "enable_for_node_editors")
Expand Down