octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #48718] plot command clobbers axis "position"


From: Pantxo Diribarne
Subject: [Octave-bug-tracker] [bug #48718] plot command clobbers axis "position" property with "hold on"
Date: Wed, 17 Oct 2018 03:33:20 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0

Follow-up Comment #9, bug #48718 (project octave):

@Rik: Good point. Basically the problem is that the ylabel object coordinates,
which are expressed in "data" units, need to be updated when axes limits
change. So far so good, "lets add an updater for xyzlim that will call
update_axes_layout" I said to my self ... but that is already the case. The
problem seams to be that the chain of updates provokes reentrant calls to
"update_axes_layout" (which is where "update_ticklength" ends up being called)
but there is a static variable that specifically prevents recursion in this
function.

It took be much time to arrive to this simple conclusion, now understanding
the exact chain of events and eventually reorganizing it to not fail (and to
not call "update_axes_layout" so often, sometimes to no avail) is a much
harder task.
I admit it looks strange to have a non const get_xxx method, I also admit
forcing the position update in some unexpected spot for solving one particular
case is not elegant, but doing it properly will involve much more work. 

Since this bug is ugly and triggered so easily I propose to look again where I
can put this "update_ticklength" call, preferably in a non const method, and
accompany it with a FIXME that references this bug report. From a performance
perspective, I don't expect it to be a big deal.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?48718>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]