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

[MacPerl-Porters] [ID 20000425.008] MacPerl GUI / Toolbox module bugs/flaws/fixes



This is a bug report for perl from kpreid@attglobal.net,
generated with the help of perlbug 1.28 running under perl 5.004.


-----------------------------------------------------------------

* Change to MacWindow::has_focus to prevent uninitialized value warnings
under some circumstances:
sub has_focus {
    my($my, $pane) = @_;

    defined ${$my->{focusable}}[$my->{focus}] or return; # added
    return ${$my->{focusable}}[$my->{focus}] == $pane;
}

* Change to MacWindow::idle to prevent "Can't use string ("") as a
SCALAR ref while "strict refs" in use." if a window is disposed from
another window's idle hook:
sub idle {
    my($self) = @_;
    my($front) = FrontWindow();
    return unless $self->{port}; # added
    if ($front && ${$self->{port}} == $$front) {
      ...

* MacWindow::drawgrowicon draws grow boxes in windows that shouldn't 
have them (e.g. noGrowDocProc, floatProc). Fix: Keep a list of what WDEF
IDs (can draw grow boxes && don't have grow box behavior).

* (Idea, not bug, but the current situation IS a problem, IMHO) A slight
change to MacWindow::goaway - Instead of immediately calling
$my->dispose, call $my->close. MacWindow::close would then call a hook
if set, or call MacWindow::dispose instead. The advantages of this are:
  1. You can define alternate behavior for the close box (e.g. ask the
user about saving changes, etc.) without having to call TrackGoAway()
yourself.
  2. You get a universal method for "get rid of this window, cleaning up
if neccesary". For example, it could be used to implement a Close menu
item that outomatically works on all MacWindows (even those that need
special handling).

* MacControl needs an accessor method for the ControlHandle:
  sub control {$_[0]->{control}}

* MacControls generate uninitialized value warnings at destruction time.
Fix for MacControl::DESTROY:
sub DESTROY {
    my($my) = @_;
    DisposeControl($my->{control}) if $my->{control};
}

* When multiple MacWindows are created between WaitNextEvents, the
activate method does not get called for the ones that were created first
(and therefore are not frontmost), sometimes resulting in incorrect
highlighting. I think there may be a similar problem for panes and the
focus method.

* The MacPerl application's Window menu does not show up if there are
only script-created windows open.

* MacColorWindow->new() creates MacWindow objects instead of
MacColorWindow
objects; this makes it impossible to tell what type of window was
created.
Fix: In MacColorWindow->new(), use @ISA = qw(MacWindow) and
$class->SUPER::new() instead of calling MacWindow->new().

-----------------------------------------------------------------

---
Site configuration information for perl 5.004:

Summary of my  ( patchlevel 0 subversion ) configuration:
  Platform:
    osname=MacOS, osvers=7.5, archname=
    uname=''
    hint=, useposix=true, d_sigaction=
    bincompat3= useperlio= d_sfio=
  Compiler:
    cc='C', optimize='', gccversion=
    cppflags=''
    ccflags =''
    stdchar='', d_stdstdio=define, usevfork=
    voidflags=, castflags=0, d_casti32=32, d_castneg=define
    intsize=32, alignbytes=, usemymalloc=, randbits=
  Linker and Libraries:
    ld='', ldflags =''
    libpth=
    libs=
    libc=, so=
    useshrplib=, libperl=
  Dynamic Linking:
    dlsrc=, dlext=, d_dlsymun=, ccdlflags=''
    cccdlflags='', lddlflags=''

Locally applied patches:
    

---
@INC for perl 5.004:
    iMax:Applications:MacPerl f:site_perl:MacPPC
    iMax:Applications:MacPerl f:site_perl
    iMax:Documents:Perl:KLib
    iMax:Applications:MacPerl f:lib:MacPPC
    iMax:Applications:MacPerl f:lib:
    iMax:Applications:MacPerl f:site_perl:MacPPC:
    iMax:Applications:MacPerl f:site_perl:
    :
    Dev:Pseudo:

---
Environment for perl 5.004:
    HOME=iMax:Documents:Perl:home:
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH (unset)
    PERL5LIB=iMax:Applications:MacPerl
f:site_perl,iMax:Documents:Perl:KLib
    PERL_BADLANG (unset)
    SHELL (unset)

==== Want to unsubscribe from this list?
==== Send mail with body "unsubscribe" to macperl-porters-request@macperl.org