Opened 11 years ago

Closed 11 years ago

#2426 closed defect (fixed)

Can drag blocks off pallette

Reported by: tonyforster Owned by: walter
Priority: Unspecified by Maintainer Milestone: Unspecified
Component: Turtleart Version: Unspecified
Severity: Unspecified Keywords:
Cc: rgs Distribution/OS: Unspecified
Bug Status: Unconfirmed

Description

OS15 XO1 TA99
Click a block on the pallette (do not drag) then press the cursor keys or H J K L, can drag the blocks off the pallette.

Presumably this is a buggy side effect of intentional block and stack keyboard shortcuts? If so, it should be documented in the wiki? Why also H J K L? Is it a useful shortcut if you still need the mouse to select them?

Also in the process managed to create some phantom blocks on the canvas (real blocks not pallette creators) which give errors if you try to drag them:

Traceback (most recent call last):

File "/home/olpc/Activities/TurtleArt.activity/TurtleArt/tawindow.py", line 743, in _buttonpress_cb

self.button_press(event.get_state()&gtk.gdk.CONTROL_MASK, x, y)

File "/home/olpc/Activities/TurtleArt.activity/TurtleArt/tawindow.py", line 771, in button_press

self._block_pressed(x, y, blk)

File "/home/olpc/Activities/TurtleArt.activity/TurtleArt/tawindow.py", line 965, in _block_pressed

self._disconnect(blk)

File "/home/olpc/Activities/TurtleArt.activity/TurtleArt/tawindow.py", line 1693, in _disconnect

c = blk2.connections.index(blk)

AttributeError: 'NoneType' object has no attribute 'index'
Traceback (most recent call last):

File "/usr/lib/python2.7/site-packages/gtk-2.0/gobject/init.py", line 101, in obj_set_property

prop.setter(self, value)

File "/usr/lib/python2.7/site-packages/sugar/activity/activity.py", line 412, in set_active

self.save()

File "/usr/lib/python2.7/site-packages/sugar/activity/activity.py", line 657, in save

self.write_file(file_path)

File "/home/olpc/Activities/TurtleArt.activity/TurtleArtActivity.py", line 1019, in write_file

data_to_file(self.tw.assemble_data_to_save(), file_path)

File "/home/olpc/Activities/TurtleArt.activity/TurtleArt/tawindow.py", line 2306, in assemble_data_to_save

connections = [get_id(_cblk) for _cblk in _blk.connections]

File "/home/olpc/Activities/TurtleArt.activity/TurtleArt/tautils.py", line 116, in get_id

return connection.id

AttributeError: Block instance has no attribute 'id'

Attachments (1)

Screenshot of "Turtle Blocks Activity"dragblocks.png (74.0 KB) - added by tonyforster 11 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 in reply to: ↑ description Changed 11 years ago by tonyforster

Replying to tonyforster:

OS15 XO1 TA99
Click a block on the pallette (do not drag) then press the cursor keys or H J K L, can drag the blocks off the pallette.

thats right off the pallette, dont forget to look at screenshot

comment:2 Changed 11 years ago by walter

Ouch. Will investigate.

comment:3 Changed 11 years ago by walter

  • Cc rgs added

http://git.sugarlabs.org/projects/turtleart/repos/mainline/commits/4ec675599e993f9724a6fae307716ddb810bbf80

This patch excludes the proto blocks on the palette from being moved using the keyboard commands.

Why also H J K L? Is it a useful shortcut if you still need the mouse to select them?

To be implemented is to select a block by tabbing through all visible blocks. But regardless, it is sometimes more convenient to fine-tune the position of a block using the keyboard, especially when using a jumpy touchpad.

This patch will be included in v100. Meanwhile, testing would be appreciated.

comment:4 Changed 11 years ago by tonyforster

Is the full list of keyboard shortcuts:

Alt+ palette; blocks; run; walk; stop; erase; e.g., Alt+e will erase the screen.
Esc will return from full-screen mode
ctrl c ctrl v
cursor keys H J K L
tab (when implemented)

?

comment:6 Changed 11 years ago by tonyforster

Seems you need to have done a query keyboard block to get the bug?

comment:7 Changed 11 years ago by walter

  • Resolution set to fixed
  • Status changed from new to closed

I did a bit more updating of the documentation in the wiki and made the behavior more consistent. For example, you can move any turtle, not just turtle 1, and the selected block that is being moved is highlighted and undocked before moving.

http://git.sugarlabs.org/projects/turtleart/repos/mainline/commits/e8db0e6cf9c4e03b59fbc5581118dff589272b4a

Note: See TracTickets for help on using tickets.